スポンサーリンク

sedで指定した行の削除をする方法

下記のin.txtを入力として、例を紹介したいと思います。

 $ cat in.txt 
find
sed
awk
ls
cat

行番号で指定した行を削除

行番号で指定した行を削除する場合には、下記の形式で実行します。

sed '行番号d' in.txt

例えば、3行目を削除する場合には、下記のように書きます。

 $ sed '3d' in.txt 
 

下記が実行結果になります。
 $ sed '3d' in.txt 
find
sed
ls
cat

スポンサーリンク

行番号で範囲指定した行を削除

行番号で範囲指定した行を削除する場合には、下記の形式で実行します。

sed '開始行番号,終了行番号d' in.txt

例えば、2〜4行目を削除する場合には、下記のように書きます。

 $ sed '2,4d' in.txt 
 

下記が実行結果になります。
 $ sed '2,4d' in.txt 
find
cat

指定した文字列を含む行を削除

指定した文字列を含む行を削除する場合には、下記の形式で実行します。

sed '/指定文字列/d' in.txt

例えば、"in"を含む行を削除する場合には、下記のように書きます。

 $ sed '/in/d' in.txt 
 

下記が実行結果になります。
 $ sed '/in/d' in.txt 
sed
awk
ls
cat

正規表現で、行頭の文字を指定して削除

行頭の文字列を指定して削除する場合には、下記の形式で実行します。

$ sed '/^先頭文字列/d' in.txt

例えば、先頭の文字が"a"の行を削除する場合には、下記のように書きます。
正規表現のメタ文字"^"を使います。

 $ sed '/^a/d' in.txt 
 

下記が実行結果になります。
 $ sed '/^a/d' in.txt 
find
sed
ls
cat

正規表現で、行末の文字を指定して削除

行末の文字列を指定して削除する場合には、下記の形式で実行します。

$ sed '/行末文字列$/d' in.txt

例えば、先頭の文字が"d"の行を削除する場合には、下記のように書きます。
正規表現のメタ文字"$"を使います。

 $ sed '/d$/d' in.txt 
 

下記が実行結果になります。
 $ sed '/d$/d' in.txt 
awk
ls
cat

スポンサーリンク