dee*_*kha 8 linux text-processing microsoft-word
我想使用 shell 命令更改 .docx 文件中的单词。我尝试使用该sed
命令,但它不起作用。有谁知道解决方案?
例如,我想更改一个单词(例如exp5
)并将其替换exp3
为文件中的另一个()exo.docx
。
ori*_*ion 19
那么,您想以特定于品牌的格式替换内容吗?乍一看,它看起来很糟糕,但新docx
格式比旧doc
格式要好一些,因为它实际上是一个包含XML
文件的 ZIP文件。
所以答案在于解压缩它,然后你必须翻遍文件并找出要调用的文件并sed
再次压缩它。
签出word/document.xml
ZIP 文件中的文件。
小智 5
试试这个脚本:
FILE=$1
RETPATH=`pwd`
rm -rf /var/tmp/docx
mkdir /var/tmp/docx
cp $FILE /var/tmp/docx
cd /var/tmp/docx
mkdir tmp
unzip $FILE -d tmp
cd tmp/word
sed -i "s/${2}/${3}/" document.xml
cd ..
zip -r ../${FILE} *
cp /var/tmp/docx/${FILE} ${RETPATH}
cd $RETPATH
rm -rf /var/tmp/docx
Run Code Online (Sandbox Code Playgroud)
并按如下方式调用脚本:
./repdocx FILE_NAME OLD_STRING NEW_STRING
Run Code Online (Sandbox Code Playgroud)