sedコマンド

基本的な使い方

sedコマンド

ファイルの内容を置換する場合

sed 's/置換前文字列/置換後文字列/g' ファイルPATH

 

標準出力の内容を置換する場合

コマンド | sed 's/置換前文字列/置換後文字列/g

 

文字列を置換する

○行目にある特定の文字列を置換する場合

sed '○s/置換前文字列/置換後文字列/g'

 

◯行目~◯行目にある特定の文字列を置換する場合

sed '○,○s/置換前文字列/置換後文字列/g'

 

特定の文字列を含む行のみ置換する場合

sed '/検索文字列/s/置換前文字列/置換後文字列/g'

 

行を挿入する

挿入の場合、実行する処理に応じて「i」と「a」を使い分ける

 

指定した行番号の箇所に行を挿入する

sed '◯i 挿入する行'

 

指定した行の後ろに行を挿入する

sed '◯a 挿入する行'

 

指定した複数の各行の前、後ろに行を挿入する

sed '◯,◯i 挿入する行'  (前に挿入する場合)

sed '◯,◯a 挿入する行'    (後に挿入する場合)

 

指定したキーワードを持つ行の前・後に行を挿入する

sed '/キーワード/i 挿入する行' (前に挿入する場合)

sed '/キーワード/a 挿入する行' (後に挿入する場合)

 

ファイル・標準出力から読み込んで行を追記する

sed '追記する行の条件r ファイルPATH' 対象ファイル(ファイルから追記)

コマンド | sed '追記する行の条件r /dev/stdin' 対象ファイル (標準出力から追記する)

行を削除する

◯行目を削除する

sed '◯d'

 

◯行目~◯行目を削除する

sed '◯,◯d'

 

決まったキーワードを持つ行を除外する

sed '/キーワード/d'

行の内容を上書きする

◯行目の内容を上書きする

sed '◯c 置き換え後の行'

 

特定のキーワードを持つ行を上書きする

sed '/キーワード/c 置き換え後の行'

ファイルの内容を上書きする

「-i」オプションを付与すると上書きをすることが出来る

sed -i '置換条件' ファイルPATH

 

保存時に直前の状態のバックアップを取得させることも出来る

sed -i.バックアップファイルの末尾に付与する文字列 '置換条件' ファイルPATH

複数の置換条件を適用する

「-e」オプションでそれぞれの置換条件を指定

sed -e '置換条件' -e '置換条件' ...

「;」で区切ることで複数指定することも可能

sed '置換条件;置換条件' ...

ファイルに書いた置換条件を読み込む

「-f」オプションを使用することで、外部ファイルに記述した置換条件を読み込んで実行できる

sed -f スクリプトファイルPATH

 

小文字/大文字の変換をする

小文字→大文字の場合

sed 's/\(.*\)/\U/'

大文字→小文字の場合

sed 's/\(.*\)/\L/'

 

置換にコマンドの実行結果を利用する

「”(ダブルクォーテーション)」か特に囲まないで、コマンドの実行箇所だけを「`(バッククォート)」で囲んで記述する

f:id:mkyosuke:20200310161219p:plain

 

ダブルクォーテーション・シングルクォーテーションで囲まれた文字列に対して処理を行う

ダブルクォーテーションの場合

sed 's/"\([^"]*\)"/"置換後の値"/' 対象のファイルPATH

シングルクォーテーションの場合

sed 's/"\([^"]*\)"/"置換後の値"/' 対象のファイルPATH