Bashでファイルから最後の行を削除する 質問する

Bashでファイルから最後の行を削除する 質問する

foo.txt次の行を含むファイル があります:

a
b
c

次のような内容になる簡単なコマンドが必要ですfoo.txt:

a
b

ベストアンサー1

使用GNU sed:

sed -i '$ d' foo.txt

この-iオプションは 3.95 より前のバージョンには存在しないGNU sedため、一時ファイルを使用したフィルターとして使用する必要があります。

cp foo.txt foo.txt.tmp
sed '$ d' foo.txt.tmp > foo.txt
rm -f foo.txt.tmp

もちろん、その場合はhead -n -1の代わりにを使用することもできますsed

マックOS:

Mac OS X(10.7.4以降)では、sed -i上記のコマンドと同等のものは

sed -i '' -e '$ d' foo.txt

おすすめ記事