テキスト(txtではない)を含む「book」ファイルがあります。また、そのファイルから削除する必要がある単語のリストもあります。このスクリプトを作成しましたが、何らかの理由で実行後にファイルが変更されたことを確認しようとすると、変更はありません。結果をbook>output.txtに出力しようとしましたが、「output」にはまだ「book」と同じテキストがあります。
パスワード:
for word in {am pm cm words count ......}
do
sed -i 's/${word}//g' book
done
リスト内の単語を削除する必要がありますが、なぜ削除されないのか知っていますか?
ベストアンサー1
変数は一重引用符内では拡張されませんが、二重引用符内では拡張されます。あなたは行かなければなりません
for word in am pm cm words count etc
do
sed -i "s/${word}//g" book
done
一度だけ呼び出してもsed
同じ効果が得られます。
sed -i "s/am\|pm\|cm\|words\|count//g" book