📜  bash 打印文件的最后 n 行 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:29:35.381000             🧑  作者: Mango

Bash 打印文件的最后 n

在使用 Linux 终端时,经常需要查看文件的最后几行内容,特别是当文件较大时。本文介绍如何使用 Bash 命令在终端中打印文件的最后 n 行。

使用 tail 命令打印最后 n

tail 命令用于显示文件的末尾内容,可以使用 -n 参数指定要显示的行数。例如,要显示文件 example.txt 的最后 10 行内容,可以运行以下命令:

tail -n 10 example.txt

如果要显示文件的最后 20 行内容,只需将 -n 参数的值更改为 20:

tail -n 20 example.txt
通过管道符号优雅地使用 tail

在 Shell 编程中,通常使用管道符号将多个命令连接起来,以便从先前的命令中获取输出并将其传递给下一个命令。在这种情况下,可以使用管道符号将 tail 命令插入其他命令中,以将输出限制为所需的行数。

例如,要查找包含特定关键字的文件的最后 5 行内容,可以使用 grep 命令来搜索文件并将结果传递给 tail 命令:

grep "关键字" example.txt | tail -n 5
使用 sed 命令打印最后 n

除了 tail 命令外,sed 命令也可以用于打印文件的最后 n 行。具体来说,可以使用以下命令打印文件 example.txt 的最后 10 行:

sed -n -e :a -e '1,'$((10+1))'!d;N;ba' example.txt

上述命令使用两个 -e 选项指定了两个 sed 命令,第一个命令将标记 :a 插入到模式空间中,第二个命令将删除除最后 10 行之外的所有行。第三个和第四个命令向模式空间中添加和合并行。最后,将 example.txt 作为输入传递给 sed 命令。

结论

以上是 Bash 中打印文件最后 n 行的几种方法。在实际使用中,可以根据具体情况选择最适合的方法。tail -n 命令适用于查看文件的最后几行内容。如果要在管道中使用,可以结合其他命令使用。当需要使用 Shell 脚本编写功能更复杂的程序时,sed 命令可能更为实用。