以外に他の選択肢はありsedますか?シェルスクリプトでこれを行うコマンドを意味しました
cat file1そしてそれは以下を含みます:
How
are
you
しかし、「どのように」という言葉を「誰が」に変えたいとしますか?
以外に他の選択肢はありsedますか?シェルスクリプトでこれを行うコマンドを意味しました
cat file1そしてそれは以下を含みます:
How
are
you
しかし、「どのように」という言葉を「誰が」に変えたいとしますか?
にはさまざまな選択肢がありますが、sedおそらくsedこの特定の操作に最適なツールです。代替案は次のとおりです。
edexawkedとexコマンドは似ています:
ed ff <<!
g/How/s//Who/g
w
q
!
exの代わりに書くことができますed。
perl -i.bak -p -e 's/\bHow\b/Who/g' ff
awk '{ gsub(/How/, "Who"); print }' ff
私はPythonやRubyに精通していないため、慣用的なソリューションを提供できません。
しかし、特にオプション付きのsedGNUも非常に便利です。sed-i
sed -i 's/How/Who/g' ff
オプションがない-i場合(そして、-iオプションが完全にばかげているわけではありません。シンボリックリンクまたは単一ファイルへの複数のリンクを持つ私のようなばかがある場合)、次を使用できます。
sed 's/How/Who/g' ff > ff.$$
cp ff.$$ ff
rm -f ff.$$
または、一時ファイルが残っていないことを確認するためのトラップを使用します。
tmp=ff.$$
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15
sed 's/How/Who/g' ff > ff.$$
cp ff.$$ ff
rm -f ff.$$
trap 0