sedの使い方まとめ

  • 更新日2019.06.26
  • etc
NO IMAGE
sedの使い方まとめ。追加、置換、削除のやり方をまとめました。
そのやり方をご紹介します(自分用のメモとしても・・・)。

使い方一覧

short-optionslong-optionsdescription
-r–regexp-extendedスクリプトで拡張正規表現を使用する
-e スクリプト–expression=スクリプトスクリプト(コマンド)を追加する
-f スクリプトファイル–file=スクリプトファイル実行するコマンドとしてスクリプトファイルの内容を追加する
-i–in-placeファイルを直接編集する
-i拡張子–in-place=拡張子ファイルを直接編集し、指定した拡張子でバックアップする(※「-i」と「拡張子」の間には空白を入れない)
–follow-symlinks-iで処理する際にシンボリックリンクをたどる
-n–quiet,–silent出力コマンド以外の出力を行わない(デフォルトでは処理しなかった行はそのまま出力される)
-l 文字数–line-length=文字数コマンドの出力行を折り返す長さを指定する(※「-l」と「文字数」の間には空白を入れる)
-s–separate複数の入力ファイルを一続きのストリームとして扱わずに個別のファイルとして扱う
-u–unbuffered入力ファイルからデータをごく少量ずつ取り込み、頻繁に出力バッファーをはき出す
-z–null-dataNUL文字で行を分割する(通常は改行で分割)
–posix全てのGNU拡張を無効にする

特定行の先頭や末尾に文字列を追加

$ cat test.txt
line1
line2
line3
$ sed -e '^line2 s/^/#/g' test.txt
line1
#line2
line3

特定行を削除

$ cat test.txt
line1
line2
line3
$ sed -e '/^line2/d' test.txt
line1
line3

特定行を上書き変更

$ cat test.txt
line1
line2
line3
$ sed -e '/^line2/c line4' test.txt
line1
line4
line3
sed ‘/文字列/s/^/追加文字列/g’ 対象ファイル # 文字列を検索して行を指定
sed ‘◯s/^/追加文字列/g’ 対象ファイル # 行番号を直接指定

特定行に文字列を挿入(追加)

$ cat test.txt
line1
line2
line3
$ sed -e '2i INSERT LINE' test.txt
line1
INSERT LINE
line2
line3
$ sed -e '2a INSERT LINE' test.txt
line1
INSERT LINE
line2
line3
$ sed -e "/^line2$/i INSERT LINE" test.txt
line1
INSERT LINE
line2
line3
$ sed -e "/^line2$/a INSERT LINE" test.txt
line1
line2
INSERT LINE
line3

etcカテゴリの最新記事