倒尾命令?

倒尾命令?

基本上,通过管道将命令或文本块传递给以下内容:(tail -n 3例如)打印仅有的最后三行stdout。是否有等效或类似的方法来执行与之相反的操作?因此,在这个例子中,它会打印全部 最后三行stdout

答案1

基于@don_crissti 的评论;如果您觉得这有帮助,请为他的评论点赞。

如果我有a包含以下内容的文件:

1
2
3
4
5
6
7
8
9
10

我想得到所有但最后三行我可以运行head -n -3它来生成以下内容:

# head -n -3 a
1
2
3
4
5
6
7

答案2

一种方法可以是这样的(不是很优雅,但经过测试并且有效):

a=$(wc -l <file.txt);a=$((a-3));sed ''$a'q;' file.txt

wc -l 返回文件的行数。行数现在分配给 a。

因为我们想要除最后 3 行之外的所有行,所以我们减少 a 然后使用 sed 打印直到文件的 ath 行。

相关内容