0

以外に他の選択肢はありsedますか?シェルスクリプトでこれを行うコマンドを意味しました

cat file1そしてそれは以下を含みます:

How
are
you

しかし、「どのように」という言葉を「誰が」に変えたいとしますか?

4

1 に答える 1

1

にはさまざまな選択肢がありますが、sedおそらくsedこの特定の操作に最適なツールです。代替案は次のとおりです。

  • ed
  • ex
  • Perl
  • Python
  • ルビー
  • awk

edexコマンドは似ています:

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
于 2012-10-07T06:10:36.883 に答える