私は以下のスクリプトを使用して、フォルダ内の文字列を検索して置き換えています。 複数の$ searchnameと$ replacenameをテキストファイルから読み込んで元のフォルダの単語を置き換えるコードを変更するにはどうすればよいですか?ここフォルダシェルスクリプト内の文字列を検索して置き換えます
フォルダです:
テストフォルダ内main folder: /USERS/path/to/test/
:
file1.txt file2.php ...........
内部データ:元フォルダ内
data.txt original/ script.sh tmp/
.TXT:検索のための
a1 a2
b1 b2
c1 c2
スクリプトと置き換える:事前に
!/bin/bash
FOLDER="/Users/path/to/test/original/"
echo "******************************************"
echo enter word to replace
read searchterm
echo enter word that replaces
read replaceterm
for file in $(grep -l -R $searchterm $FOLDER)
do
sed -e "s/$searchterm/$replaceterm/g" $file > /Users/path/to/test/tmp/tempfile.tmp
mv /Users/path/to/test/tmp/tempfile.tmp $file
echo "Modified: " $file
done
echo " *** All Done! *** "
感謝を。
'sed'を実行するために' sed -i -e "/ $ search/$ replace/g" $ file'を実行することができます。つまり、 '> tempfile'と名前を変更する必要はありません。 –
ありがとうございますが、作成したバックアップファイルを(端で-eを使用して)クリーンアップする必要があります。どのようにして新しいファイルを変更したファイルを送信できますか?ありがとう – john206