指定の行の指定の内容をシェルで変更する方法

シェルで特定行の特定内容を変更する場合は、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コマンドでファイルを編集するときは、ファイルを直接編集することになるので注意が必要です。ファイルを編集する前に、元のファイルをバックアップすることをお勧めします。

bannerAds