![Linux 명령줄을 사용하여 .DOCX 파일의 단어를 바꾸는 방법은 무엇입니까?](https://linux55.com/image/96649/Linux%20%EB%AA%85%EB%A0%B9%EC%A4%84%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20.DOCX%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
쉘 명령을 사용하여 .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