4

フォルダーのサブフォルダーに存在するxmlファイルのみで、「問題を解決する」という文字列を「最良の回答を選択してください」に置き換えたいと思います。これを行うのに役立つスクリプトをコンパイルしましたが、2 つの問題があります。

  1. また、スクリプトの内容を置き換えます
  2. サブフォルダーのすべてのファイルのテキストを置き換えます(ただし、xmlのみを変更したい)
  3. 特定のサブフォルダーとファイルでテキストの不一致が発生した場合に、エラー メッセージ (できればテキスト出力) を表示したいと考えています。

上記の 3 つの問題を解決できるように、既存のスクリプトを変更する方法を教えてください。

私が持っているスクリプトは次のとおりです。

-type f |を見つける xargs sed -i "s/問題を解決する/最適な回答を選択する/g"

4

2 に答える 2

9

bash と sed の使用:

search='Solve the problem'
replace='Choose the best answer'
for file in `find -name '*.xml'`; do
  grep "$search" $file &> /dev/null
  if [ $? -ne 0 ]; then
    echo "Search string not found in $file!"
  else
    sed -i "s/$search/$replace/" $file
  fi  
done
于 2012-08-10T17:42:57.310 に答える
3
find -type f -name "*.xml" | xargs sed -i "s/Solve the problem/Choose the best answer/g"

問題3を理解できません。

于 2012-08-08T05:56:47.953 に答える