今回はLinuxのコマンドである「sed」について説明しようと思います。
「sed」コマンドは文字列の抽出、削除、置換等といった文字編集を行うために使用されるコマンドです。
コマンドの書式としては下記のようになっております。([]内は省略可)
sed [オプション] スクリプトコマンド 入力ファイル名
主なオプションを下記に示します。
-e・・・スクリプトコマンドを追加する
-E・・・拡張正規表現を使用する
-i・・・ファイルを直接編集する
主なスクリプトコマンドを下記に示します。
c 「テキスト」・・・選択した行を「テキスト」で置換する
d ・・・指定した行を削除する
s/置換前の文字列/置換後の文字列/g・・・「置換前の文字列」と一致した部分を「置換後の文字列」に全て置き換える
(末尾にgが無ければ行内の最初の文字列のみ置換する)
上記にあるオプション例やスクリプトコマンド例だけだといまいちわかりづらいので、いくつか具体的なコマンドを下記に示します。
・文章内の小文字の「a」を大文字の「A」に全て置換したい場合
sed -e 's/a/A/g' test.txt
・文章内の半角スペースをすべて削除したい場合
sed -e 's/ //g' test.txt
・文章の5行目だけ指定して削除したい場合
sed -e 5d test.txt
・文章の3~5行目を範囲指定し、削除したい場合
sed -e '3,5d' test.txt
・3行目のテキストを置き換えたい場合
sed -e '3c 置き換えたいテキスト' test.txt
また上記コマンド例は置換後の文章を表示するだけで元ファイル内容は変更されません。
変更内容を保存したい場合は「-i」オプションをつけることで保存されます。
このようにsedコマンドを使用することによって、文章を細かく編集することができます。
今回は1つのファイルに対する変更例しかありませんが、正規表現を使用することによって該当する複数のファイル内容を一度に編集することも可能です。
使い方をマスターすればかなり便利なコマンドだと思い、今回説明させていただきました。