head和tail命令的有趣用法!

在linux命令行中,我们可以通过nl,more,head,tail等命令来查看一个文件的内容,他们都有各自的不同用法。

对于head和tail,主要功能是显示出一个文件的前几行和后几行。如果没有-n选项的话会默认显示十行。但是,有意思的就是这个-n选项。

下面我们对-n选项进行一些有意思的尝试:

我们可以用nl /etc/man.config命令来显示出man.config文件的内容,并且显示行号:

以这个作为参考,我们采用如下的命令:

1、head filename命令

该命令是默认情况下的head显示命令,会显示filename文件的前10行;例如:我们采用head /etc/man.config来显示man.config文件。

2、head -n number filename

该命令中加入-n选项,用于显示文件filename的number行内容。但是number可以加上+、-号,此时,情况变得有意思了!

a)、如果number没有正负号,即显示filename文件的number行内容

b)、如果number前面是正号(+),与没有符号的情况相同!

c)、如果number前面是负号(-),如下例中的head -n -120 /etc/man.config,意思是显示从文件第一行开始到距文件末尾number行的所有内容。以下面的例子来说,man.config文件一共有141行,-n -120代表距离文件末尾120行,即第21行。所以该命令会显示第1-21行的文件内容。

3、tail filename命令

该命令用于显示文件末尾的10行内容。

4、tail -n number filename命令

a)、当number没有正负号时,显示文件filename的后number行内容。

b)、当number前面为正号时,意义是显示出number所标示的行以后的所有 内容,例如下面的命令tail -n +125 /etc/man.config,因为man.config文件一共141行,所以该命令会显示出文件的125——141行的内容。

c)、当number为负数时,意为显示距离文件末尾number行到文件末尾的所有内容。例下面的命令用来显示文件最后15行的内容。与默认不带符号的命令相同。

 

总结:对于head命令,有-n选项时,-n +number 的效果和 -n number 的效果是一样的。而对于tail命令,-n -number 和 -n number 的效果是一样的!而对于其他两种形式,表达了不同的意思,应该注意区别。

当然,还有其他一些比较有意思的显示命令,例如,cat和tac,读者可以自己试试。

posted on 2012-11-05 11:49  祺昕  阅读(2363)  评论(0编辑  收藏  举报

导航