ファイルの行を削除するには、sedのdコマンドを使うのが簡単です。
下記に書き方を紹介します。
スポンサーリンク
sedのdコマンドを使って、ファイルの最後の行を削除
sedのdコマンドの使い方
下記の形式でsedコマンドを書くことで、行番号で指定した行を削除します。
sed -e '行番号d' 入力ファイル
スポンサーリンク
sedのdコマンドで、ファイルの最後の行を削除する方法
ファイルの最後行の行番号は$となります。
sedでファイルの最後の行を削除するには、行番号に$を指定して、下記のように書きます。
sed -e '$d' 入力ファイル
sedでファイルの最後の行を削除するサンプルコード
下記のように、in.txtがあったとします。
$ cat in.txt line1 line2 line3 line4
下記のように、sedのdコマンドを使って、ファイルの最後行の行を削除します。
実行すると、最後の行が削除されています。
$ sed -e '$d' in.txt line1 line2 line3
スポンサーリンク
sedのdコマンドを使って、ファイルの最後の複数行を削除
sedのdコマンドで、ファイルの最後の複数行を削除する方法
sedのdコマンドを使って、ファイルの最後の複数行を削除するには、下記のように削除したい行番号の範囲を指定します。
(※ファイルの最後の複数行を削除する時は、シェルスクリプトを組みます。その時に、行番号を変数で渡してあげるため、dコマンドはダブルコーテーションで囲っています。)
sed -e "行番号,$d" 入力ファイル
sedでファイルの最後の複数行を削除するサンプルコード
下記のようにシェルスクリプトを組むことで、sedのdコマンドで、in.txtのファイルの最後の2行を削除できます。
$ cat sample.sh #!/bin/sh wc=($(wc -l in.txt)) num=$(($wc-1)) sed -e "$num,\$d" in.txt
実行すると、下記のようにファイルの最後の2行が削除されているのが確認できます。
$ ./sample.sh line1 line2
スポンサーリンク