我和一個朋友正在開發一個項目,我們必須創建一個腳本,可以進入一個文件,並使用Sed替換某個表達式/單詞/字母的所有出現。它旨在通過多次測試來代替所有這些事件,我們不知道它們會是什麼,所以我們必須預測任何事情。我們在某些測試中遇到了麻煩,我們需要用循環替換'L'和'L'在不同文件中。那我的代碼是使用Sed的Shell腳本的問題
#!/bin/sh
p1="$1"
shift
p2="$1"
shift
for file in "[email protected]" #for any file in the directory
do
# A="$1"
#echo $A
#B="$2"
echo "$p1" | sed -e 's/\([*.[^$]\)/\\\1/g' > temporary #treat all special characters as plain text
A="`cat 'temporary'`"
rm temporary
echo "$p1"
echo "$file"
sed "s/$p1/$p2/g" "$file" > myFile.txt.updated #replace occurances
mv myFile.txt.updated "$file"
cat "$file"
done
我曾嘗試對包含不同的話,也「L *」但每當我測試了一下,刪除文件中的所有文本練習文件測試此。有人可以幫助我,我們希望儘快完成。謝謝
歡迎來到堆棧溢出。如果這個問題涉及家庭作業,請添加作業標籤。 – pb2q 2012-08-14 17:15:35