GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドラインを使用して.DOCXファイル内の単語を置き換える方法は?

では、ブランド固有のフォーマットで物を置き換えたいですか?一見悪いように見えますが、新しい docx 形式は、古い doc よりも少し優れています これは、実際には XML を含む ZIP ファイルであるためです。 ファイル。

したがって、答えはそれを解凍することにあります。次に、ファイルを調べて、どのファイルで sed を呼び出すかを判断する必要があります。 もう一度圧縮してください。

ファイル word/document.xml をチェックアウトします ZIP ファイルに含まれています。


このスクリプトを試してください:

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

Linux
  1. コマンドラインを使用してLinuxをシャットダウンまたは再起動する方法

  2. CentOS / RHEL 7 で systemd-tmpfiles が /tmp/ または /var/tmp (tmpwatch の置き換え) をクリーンアップする方法

  3. CentOS / RHEL :logrotate を使用して /var/log/wtmp および /var/log/btmp ファイルをローテーションする方法

  1. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

  2. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

  3. デフォルトの /tmp を /home/user/tmp に変更する方法

  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. コマンドラインを使用してLinuxを再起動する方法

  3. Linuxコマンドラインのすべてのファイルで単語のすべての出現箇所を置き換える方法