ウェブサイト検索

sedコマンドを使用してテキストファイルから行を削除する方法


以下に、sedコマンドとbashシェルを使用してテキストファイルから行を削除する方法の例を示します。こちらがサンプルファイルの内容です:


cat example.txt 
AAAAAAAAAA
BBBBBBBBBB
CCCCCCCCCC
DDDDDDDDDD
EEEEEEEEEE

次に、上記の example.txt ファイルから2行目を削除します:


sed 2d example.txt 
AAAAAAAAAA
CCCCCCCCCC
DDDDDDDDDD
EEEEEEEEEE

さらに、このファイルから複数の行を削除することもできます。例えば、2行目から4行目までのすべての行を削除しましょう:


sed 2,4d example.txt
AAAAAAAAAA
EEEEEEEEEE

特定の正規表現に一致するすべての行を削除することもできます。次の例では、少なくとも1つのC文字を含む行を削除します:


sed '/C/'d example.txt
AAAAAAAAAA
BBBBBBBBBB
DDDDDDDDDD
EEEEEEEEEE

既存のファイルに変更を保存するには、-iオプションを使用します。この方法で、
sedコマンドは元のファイルを上書きします:


sed -i '/C/'d example.txt

または出力を新しいファイルにリダイレクトするだけです:


sed '/C/'d example.txt > example2.txt

追加の例:

空の行を削除する:


sed '/^$/d' example.txt

最後の行を削除する:


sed '$d' example.txt

最初の行を削除する:


sed 1d example.txt

関連記事: