如何删除 UNIX 文件中除第一行和最后一行之外的所有行?

如何删除 UNIX 文件中除第一行和最后一行之外的所有行?

我只想在 UNIX 文件中保留标头和尾部记录。

答案1

使用 sed:

sed -n '1p;$p' file

禁止自动打印图案空间 ( -n),但打印图案空间的第一行 ( 1p) 和最后一行 ( $p)。

如果您想“就地”编辑文件,请使用 sed 的选项-i

答案2

依次使用head和:tail

head -n 1 file.txt; tail -n 1 file.txt

tail如果成功则运行head

head -n 1 file.txt && tail -n 1 file.txt

例子:

% cat file.txt 
foo
spam
egg
bar


% head -n 1 file.txt; tail -n 1 file.txt
foo
bar

% head -n 1 file.txt && tail -n 1 file.txt
foo
bar

相关内容