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
的第三道第五行。
上一篇: shell 学习第二十...
下一篇: shell 学习第二十...