ファイルの行を削除するには、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

スポンサーリンク