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