쉘 명령을 사용하여 .docx 파일의 단어를 변경하고 싶습니다. 명령 을 사용해 보았지만 sed
작동하지 않습니다. 이 문제에 대한 해결책을 아는 사람이 있나요?
예를 들어, 파일에서 단어(예: exp5
)를 변경하고 이를 다른 단어()로 바꾸고 싶습니다 .exp3
exo.docx
답변1
그렇다면 브랜드별 형식으로 콘텐츠를 교체하고 싶으신가요? 얼핏 보기에는 안 좋아 보이지만 실제로는 파일이 포함된 ZIP 파일이기 때문에 docx
이전 형식보다 새로운 형식이 더 좋습니다 .doc
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