私のプロジェクトでは、ファイルのいくつかの既存のテキストを置き換える必要があります。foo
次のような他のテキストでfooofoo
:
abc.txt
name
foo
foo1
だから私は次のことを試みます:
sed -i "s/foo/fooofoo/g" abc.txt
ただし、次のエラーが発生します。
sed:無効なオプション -
i
マニュアルで以下を使用する必要があることがわかりました。
sed -i\ "s/foo/fooofoo/g" abc.txt
しかし、これも動作しません。
私はperl
andで代替を見つけましたが、awk
Solarisで解決策を見つけることができればsed
幸いです。
私はこのバージョンのbashを使用しています。
GNU bash、バージョン 3.2.57(1)-リリース(sparc-sun-solaris2.10)
ベストアンサー1
使用ed
。ほとんどのプラットフォームで動作し、ファイルをその場で編集できます。代替パターンに基づく構文は似ている
ため、次のようになります。sed
ed
ed -s infile <<\IN
,s/old/new/g
w
q
IN