そのやり方をご紹介します(自分用のメモとしても・・・)。
使い方一覧
short-options | long-options | description |
---|---|---|
-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-data | NUL文字で行を分割する(通常は改行で分割) |
–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
コメント