私と友人はプロジェクトに取り組んでおり、ファイルに入ることができるスクリプトを作成し、Sed を使用して特定の表現/単語/文字の出現をすべて別のものに置き換える必要があります。これらすべての発生を置き換える複数のテストを通過するように設計されており、それらがどうなるかわからないため、何かを予測する必要があります. ループを使用して別のファイルで「l*」を「L」に置き換える必要がある特定のテストで問題が発生しています。私が持っているコードは
#!/bin/sh
p1="$1"
shift
p2="$1"
shift
for file in "$@" #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*」を含む練習ファイルでこれをテストしようとしましたが、テストするたびに、ファイル内のすべてのテキストが削除されます。誰かがこれを手伝ってくれませんか。すぐにやりたいと思います。ありがとう