小编典典

从 Bash 中的文件中删除最后一行

all

我有一个文件,foo.txt包含以下几行:

a
b
c

我想要一个简单的命令,它的内容foo.txt是:

a
b

阅读 94

收藏
2022-03-24

共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.

苹果系统:

在 Mac OS X(从 10.7.4 开始)上,与上述sed -i命令等效的是

sed -i '' -e '$ d' foo.txt
2022-03-24