同じファイルで同時に複数のsedコマンドを実行する

同じファイルで同時に複数のsedコマンドを実行する

ディレクトリ内のすべてのファイルで文字列fooのすべてのエントリをbarに変更するには、次のようにします。

sed -i -- 's/foo/bar/g' *

発見するここ

しかし、NAMEを名前などに変更したいと思います。以前試してみたことがありますが、

sed -i - 's/foo/bar/g' * sed -i - 's/NAME/name/g' *

これにより、新しいファイルが作成されます。新しいファイルを作成せずに、このコマンドで元のファイルを再構築し、fooをbarに変更し、NAMEを名前に変更し、別の代替ファイルを持つようにするにはどうすればよいですか?

ベストアンサー1

sed単一の呼び出しで複数の式を提供できます。

sed -e 'expr' -e 'expr' -e ...

あなたの場合:

sed -e 's/foo/bar/g' -e 's/NAME/name/g'

式は、入力の各行に左から右に順次適用されます。

おすすめ記事