ディレクトリ内のすべてのファイルで文字列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'
式は、入力の各行に左から右に順次適用されます。