スポンサーリンク
Linuxのsedコマンドで、ファイルの文字列を置換、行削除する方法を解説します。
sedコマンドとは
入力されたテキストデータを行単位で読み取り、テキスト変換などの編集して、行単位で出力を行います。
主に文字列の置換や抽出に用いられて、正規表現にも対応しています。
sedはStream EDitor
の略称です。
sedコマンドによる置換の構文
sedコマンドに-iオプションを指定することで置換後文字列
でファイルを保存します。
s
オプションは「substitute(代替)」という意味の英単語の頭文字で、sを指定することで置換前文字列
を置換後文字列
に置き換えることができます。
g
オプションは、一致する文字列をすべて置換する際に指定します。
文字列を置換して保存
実行コマンド例
以下コマンドでtest.txtのit-life
をIT-LIFE
へ置換します。
置換前後の確認
以下の通り、置換が行われたことを確認できました。
置換前の確認
置換後の確認
指定した行を削除して保存
sedコマンドに'1,3d'
のように指定することで、行を削除することができます。
'1,3d'
の場合は1行目~3行目の行を削除するという意味になります。
指定行の削除前
1行目~3行目を削除して保存
指定行の削除後
以下の通り、1行目のaaa
から、3行目のccc
が削除されたことを確認できました。
特定の文字列を含む行を削除して保存
特定の文字列を含む行を削除したい場合は'/eee/d'
のように指定します。
'/eee/d'
はeee
を含む行を削除するという意味です。
特定文字列行の削除前
eeeを含む行を削除して保存
特定文字列行の削除後
以下の通りeee
の行が削除されたことを確認できました。
sedコマンドのまとめ
s
オプションを指定することで置換前文字列
を置換後文字列
へ変換できる。i
オプションを指定することで置換後文字列
でファイルを保存できる。g
オプションを指定することで置換前文字列
に一致するすべての文字列を置換できる。d
オプションを指定することで、指定した条件の行を削除することができる。
以上で本記事の解説を終わります。
よいITライフを!