您的位置:首页 > 运维架构 > Linux

Linux -- head/tail

2016-04-03 15:22 363 查看
1)文件内容查阅

要查阅一个文件的内容时,最常使用的显示文件内容的命令可以说是 cat 与 more 及 less
了!

此外,如果我们要查看一个很大型的文件 (好几百MB时),但是我们只需要后端的几行字而已,那么该如何是好?

用 tail 呀,此外, tac这个命令也可以达到!

---- cat 由第一行开始显示文件内容

---- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒写!

---- nl 显示的时候,顺道输出行号!

---- more 一页一页的显示文件内容

---- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

---- head 只看头几行

---- tail 只看尾巴几行

---- od 以二进位的方式读取文件内容!

参考网址:http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_3.php

2)数据撷取---head/tail

我们可以将输出的数据作一个最简单的撷取,那就是取出前面 (head) 与取出后面 (tail)文字的功能。

不过,要注意的是, head 与 tail 都是以『行』为单位来进行数据撷取的喔!还有|grep 也可以用。

head 的英文意思就是『头』啦,那么这个东西的用法自然就是显示出一个文件的前几行了。

若没有加上 -n 这个选项时,默认只显示十行,若只要一行呢?那就加入『 head -n 1 filename 』即可!





另外那个 -n 选项后面的参数较有趣,如果接的是负数,例如上面范例的-n -100时,代表列前的所有行数, 但不包括后面100行。

举例来说,/etc/manpath.config共有141行,则上述的命令『head -n -100 /etc/manpath.config』 就会列出前面41行,后面100行不会列印出来了。

相当于列出前面(所有的行数-100)





这个 tail 的用法跟 head 的用法差不多类似,只是显示的是后面几行就是了!默认也是显示十行,若要显示非十行,就加 -n number 的选项即可。

其实与head -n -xx有异曲同工之妙。当下达『tail -n +120 /etc/man.config』 代表该文件从120行以后都会被列出来.

同样的,在manpath.config共有131行,因此第120~131行就会被列出来啦! 前面的119行都不会被显示出来.



tail -f /var/log/messages

由于/var/log/messages随时会有数据写入,你想要让该文件有数据写入时就立刻显示到萤幕上, 就利用 -f 这个选项,它可以一直侦测/var/log/messages这个文件。

新加入的数据都会被显示到萤幕上。 直到你按下[crtl]+c才会离开tail的侦测。

例题:假如我想要显示 /etc/man.config 的第 11 到第 20 行呢?

答:在第 11 到第 20 行,那么我取前 20 行,再取后十行,所以结果就是:

『 head -n 20 /etc/man.config | tail -n 10 』,就可以得到11-20的内容了!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: