63

我正在尝试从我的文本文件中删除前两行和最后四行。我怎样才能用 Bash 做到这一点?

4

4 回答 4

89

您可以结合tailhead

$ tail -n +3 file.txt | head -n -4 > file.txt.new && mv file.txt.new file.txt
于 2012-05-05T10:28:27.707 回答
21

首尾

cat input.txt | tail -n +3 | head -n -4

解决方案

cat input.txt | sed '1,2d' | sed -n -e :a -e '1,4!{P;N;D;};N;ba'
于 2012-05-05T11:29:12.127 回答
12

这是我找到的最快的方法:

sed -i 1,2d filename
于 2013-08-09T20:35:22.710 回答
3

您可以使用以下示例从 bash 命令行调用 ex 编辑器。请注意,它使用此处的文档来结束要执行的命令列表。

ex text.file << EOF
1,2d
$
-3,.d
x
EOF
于 2012-05-06T11:32:04.407 回答