Linux命令备忘实例(11)——首尾获取

来源:互联网 发布:江苏镇江中学知乎 编辑:程序博客网 时间:2024/05/16 09:00

在备忘4中记录的获取内容命令是直接输出文件内容的方式,非常直白地全部输出文件内容。如果遇到文件内容太大,直接输出的方式肯定比不适合,特别是遇到只需要查看首尾内容的情况,使用haed和tail就是方便这种内容的查看:适合输出文件内容的前n行或者后n行,也可以输出除了前n行或者后n行之外的内容。
另外在处理大体积文件时,对于可以翻页获取也是一种有效的方式,more和less就是用来进行翻页获取文件内容的工具。

1.head

1.概览

head命令总是读取输入文件的头部,默认输出10行,可以使用参数改变。
这里写图片描述
如果输入参数中没有文件,或者文件是“-”,则从标准输入中读取。可以使用-n参数指定输出的行数,-c参数指定输出的字节数,行数和字节数目可以使用正常支持的大小单位,另外使用“-”在数目前表示除去最后指定行数之外的内容。

2.特性实例

可以从一个文件或者标准输入获取内容并输出,默认10行:

user@ubuntu:~$ cat text.txt | headuser@ubuntu:~$ head text.txt

输出指定行数或者之外的行数:

user@ubuntu:~$ seq 5 | head -n 3123user@ubuntu:~$ seq 5 | head -n -312

将最后几行排除在外是head一个重要的用法,可以用来查阅历史记录,除去最新记录。

2.tail

1.概览

tail命令总是读取输入文件的尾部,默认输出最后的10行,可以使用参数改变。
这里写图片描述
其中的-n和-c参数与head类似,指定从尾部开始计数输出的行数。同样,在指定行数N的时候,可以使用“+N”来输出从文件第N行开始的后续所有行。
除此之外,tail命令在查阅日志文件的最新记录时非常有效,对于一个实时增加内容的文件,在读取尾部的数据时,使用tail输出最后的N行之后,新的呃逆荣又被添加进入文件中了,最好能实时用tail命令输出。这里tail提供了一个-f选项(或者–follow),能使tail密切关注文件中新添加的内容,并随着数据的增加实时保持更新。

2.特性实例

user@ubuntu:~$ seq 5 | tail -n 234user@ubuntu:~$ seq 5 | tail -n +3345

tail的-f选项在实时查看增加的文件时非常有效。另外,在给定某个进程结束之后,tail也会随之终结。假设进程A向文件不断追加数据,使用tail -f查看这个文件时,如果进程A结束运行,那么tail也会自动结束:

user@ubuntu:~$ PID=$(pidof A)user@ubuntu:~$ tail -f file.txt --pid $PID

使用gedit编辑器编辑一个文件并不断保存,可以实际操作上述情形,如果关闭gedit时,tail命令也会结束。

0 0
原创粉丝点击