指定の行の指定の内容をシェルで変更する方法
シェルで特定行の特定内容を変更する場合は、sedコマンドを使用します。sedはテキストの編集や変換を行うことができるストリームエディタです。
指定された行から特定の内容を変更する例を以下に示します。
sed -i '2s/foo/bar/' file.txt
上記のコマンドを実行することで、file.txt の2行目の”foo”を”bar”に変更します。 -i オプションにより、端末に出力せず、上書きで変更を行います。
複数のファイルを修正する場合、ワイルドカードを使用できます:
sed -i '2s/foo/bar/' *.txt
上記の命令は、.txtで終わるすべてのファイルの2行目を変更します。
、で区切って行番号の範囲を指定すれば複数行の編集ができます:
sed -i '2,4s/foo/bar/' file.txt
先の命令でfile.txtの2行目から4行目を修正し、「foo」を「bar」に置き換えます。
特定の文字を含む行を修正する場合は、正規表現を使用できます:
sed -i '/pattern/s/foo/bar/' file.txt
このコマンドは file.txt ファイル内の “pattern” を含む行を変更し、それらの行の “foo” を “bar” に置き換えます。
sedコマンドでファイルを編集するときは、ファイルを直接編集することになるので注意が必要です。ファイルを編集する前に、元のファイルをバックアップすることをお勧めします。