Sie möchten also Dinge in einem markenspezifischen Format ersetzen? Auf den ersten Blick sieht es schlecht aus, aber der neue docx
Format ist dafür etwas besser geeignet als das alte doc
Format, weil es eigentlich eine ZIP-Datei ist, die XML
enthält Dateien.
Die Antwort liegt also darin, es zu entpacken, dann müssen Sie die Dateien durchstöbern und herausfinden, auf welcher Sie sed
aufrufen müssen und wieder komprimieren.
Sehen Sie sich die Datei word/document.xml
an in der ZIP-Datei.
versuchen Sie dieses Skript:
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
und rufen Sie das Skript wie folgt auf:
./repdocx FILE_NAME OLD_STRING NEW_STRING