Total Pageviews

Tuesday, 30 July 2024

Linux下,文件查阅命令之cat和tac


在linux下,查阅文件命令时,如果想将文件里面所有内容都连续的显示到屏幕上,可以用cat这个命令。cat是从第一行开始显示文件内容。而tac则是从最后一行开始显示文件内容,可以看出tac是cat的倒着写。下面介绍命令的用法及参数分析。

cat(concatenate)用法及参数分析


[root@lmode ~]# cat [-AbEnTv]

选项与参数:


-A  :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;

-b  :列出行号,仅针对非空白行做行号显示,空白行则不显示行号!

-E  :将结尾的断行字节 $ 显示出来;

-n  :显示出行号,连同空白行也会有行号,与 -b 的选项不同;

-T  :将 [tab] 按键以 ^I 显示出来;

-v  :列出一些看不出来的特殊字符


实例1:查阅/etc/issue这个文件的内容


[root@lmode~]# cat /etc/issue

CentOS release 6.5 (Final)

Kernel \r on an \m


从打印的内容可以看出来,/etc/issue这个文件的内容包括了本机Linux的发行商及版本信息。

实例2:将显示内容带上行号

[root@lmode ~]# cat -n /etc/issue

     1  CentOS release 6.5 (Final)

     2  Kernel \r on an \m

     3


cat这个命令只适合显示文件内容中行数比较少的,一般当文件内容超过40行,就不适合用cat这个命令了,因为显示的内容已经超过了屏幕能容纳的范围,当文件内容行数较多的时候可以选择用more或less命令。


和cat相反的命令是tac,tac是有最后一行到第一行反向显示文件内容到屏幕上。可以看下面的例子:


实例3:反向显示/etc/issue里面的内容

[root@lmode ~]# tac /etc/issue


Kernel \r on an \m

CentOS release 5.3 (Final)

----------------------------------

Linux下的nl命令


nl命令也是显示文件内容的命令,和cat命令有点相似,不过又有区别。下面介绍nl命令的用法和参数:

[root@lmode ~]# nl [-bnw] 文件

选项与参数:

-b  :指定行号指定的方式,主要有两种:

      -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

      -b t :如果有空行,空的那一行不要列出行号(默认值);

 

-n  :列出行号表示的方法,主要有三种:

      -n ln :行号在屏幕的最左方显示;

      -n rn :行号在自己栏位的最右方显示,且不加 0 ;

      -n rz :行号在自己栏位的最右方显示,且加 0 ;

 

-w  :行号栏位的占用的位数。

范例一:用 nl 列出 /etc/issue 的内容


[root@lmode ~]# nl /etc/issue

     1  CentOS release 6.5 (Final)

     2  Kernel \r on an \m

     

# 注意看,这个文件其实有三行,第三行为空白(没有任何显示),

# 因为是空白行,所以 nl 不会加上行号。

范例二:在空白行也加上行号


[root@lmode ~]# nl -b a /etc/issue

     1  CentOS release 6.5 (Final)

     2  Kernel \r on an \m

     3

范例3:让行号前面自动补上 0


[root@lmode ~]# nl -b a -n rz /etc/issue

000001  CentOS release 6.5 (Final)

000002  Kernel \r on an \m

000003

默认栏位是六位数,如果想要改成 3 位数呢,可以这样:


[root@lmode ~]# nl -b a -n rz -w 3 /etc/issue

001     CentOS release 5.3 (Final)

002     Kernel \r on an \m

003

nl 可以将输出的文件内容自动的加上行号。其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

No comments:

Post a Comment