离线下载
PDF版 ePub版

见证大牛成长之路 · 更新于 2018-11-28 11:00:43

shell 学习二十四天---提取开头或结尾数行

有时,会需要从文本文件里把几行字----多半是靠近开头或结尾的几行,提取出来;或者,有时只要瞧瞧工作日志的后面几行,就可以了解最近工作活动的大概情况.可以用下面的方式显示标准钱n条记录,或是命令行文件列表中的每一个前n条记录.
head -n n [file(s)]
head -n [file(s)]
awk ‘FNR<= n’ [file(s)]
sed -e nq [file(s)]
sed nq [file(s)]
个人觉得最好用的显示文本文件的头几行最好用的是 head -n [file(s)]
head 的常用选项:
-q: 隐藏文件名
-v: 显示文件名
-c<字节>: 显示字节数
-n<行数>: 显式的行数
在交互式 shell 通信期中,有时需要监控某个文件的输出----如日志这类持续写入状态的文件.-f 选项这时就派上用场了,他可以要求 tail 显示指定的文件结尾行数,接着进入无止境的循环中----休息一秒后又再度醒来并检查是否需要显示更多的输出结果.再设置-f 的状态下,tail 只有当你中断它时才会停止----通常是输入 Ctrl+C 来中断;
tail -n 25 -f /var/log/messages 观察此选项不可用于 shell 脚本.
直到按了 ctrl+c 选项后才停止.
由于 tail 加上-f 选项之后便不会自己中断,所以此选项不能用于 shell 脚本.使用-f选项有实时监听的效果.
head 案例:
使用命令:head -n 3 /etc/passwd结果是显示文件的头三行,
如果命令为:head -n -3 /etc/passwd 结果是显示除了最后三行都显示,注意到区别没有?
相似的,显示文件的前 n 个字节,以及除了最后 n 个字节以外的内容也没问题了.
head 和 tail 如果组合使用:
head -n 5 /etc/passwd | tail -n 3
输出/etc/passwd 的第三道第五行.

上一篇: 打印 下一篇: 神器的管道符