以外に他の選択肢はありsed
ますか?シェルスクリプトでこれを行うコマンドを意味しました
cat file1
そしてそれは以下を含みます:
How
are
you
しかし、「どのように」という言葉を「誰が」に変えたいとしますか?
以外に他の選択肢はありsed
ますか?シェルスクリプトでこれを行うコマンドを意味しました
cat file1
そしてそれは以下を含みます:
How
are
you
しかし、「どのように」という言葉を「誰が」に変えたいとしますか?
にはさまざまな選択肢がありますが、sed
おそらくsed
この特定の操作に最適なツールです。代替案は次のとおりです。
ed
ex
awk
ed
と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に精通していないため、慣用的なソリューションを提供できません。
しかし、特にオプション付きのsed
GNUも非常に便利です。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