我想使用 shell 命令更改 .docx 文件中的单词。我尝试使用该sed
命令,但它不起作用。有谁知道这个问题的解决方案?
例如,我想更改一个单词(例如exp5
)并将其替换为exp3
文件中的另一个单词()exo.docx
。
答案1
那么,您想以特定品牌的格式替换内容吗?乍一看,它看起来很糟糕,但新docx
格式比旧格式要好一些doc
,因为它实际上是一个包含文件的 ZIP 文件XML
。
因此,答案在于解压缩它,然后您必须翻阅文件并找出要调用的文件sed
并再次将其压缩。
查看word/document.xml
ZIP 文件中的文件。
答案2
试试这个脚本:
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
并按如下方式调用脚本:
./repdocx FILE_NAME OLD_STRING NEW_STRING