背景
在Linux系统中,往往使用命令的方式查看某个文件的内容,这里介绍一些命令实现上述功能。
查看文件内容的命令
最常使用的显示文件内容的命令可以说是cat
与more
及less
了。同样还有针对查看大文件末尾的tail
命令等。
直接查看文件内容
直接查看一个文件的内容可以使用cat/tac/nl这几个命令。
cat
由第一行开始显示文件内容。tac
从最后一行开始显示,可以看出tac
是cat
的倒写。nl
显示的时候,同时输出行号。
cat
cat(concatenate, 串联)可直接查看一个文件的内容。
语法格式:cat [-AbEnTv] file
选项与参数说明:
- A: 可列出一些特殊字符而不是空白而已
- b: 列出行号,但仅针对非空白行做行号显示,空白行不标行号
- E: 将结尾的换行符$显示出来
- n: 打印出行号,连同空白行也会有行号
- T: 将**[tab]**按键以
^I
显示出来 - v: 列出一些看不出来的特殊字符
tac
tac
命令是由最后一行到第一行反向在屏幕上显示文件内容。选项参数与cat
命令相同。
nl
nl
命令可以将输出的文件内容自动地加上行号。但与cat -n
不同的是,nl
可以将行号做比较多的显示设计,包括位数与是否自动补齐0等功能。
语法格式:nl [-bnw] file
选项与参数说明:
- b: 指定行号指定的方式,主要有两种:
-b a
: 是否为空行,都会显示行号,同cat -n
-b t
: 存在空行,空行不显示行号(默认值)
- n: 列出行号表示的方式,主要有三种:
-n ln
: 行号在屏幕的最左方显示-n rn
: 行号在自己栏位的最右方显示,且不加0-n rz
: 行号在自己栏位的最右方显示,且加0
- w: 行号栏位占用的字符数
可翻页查看文件内容
以上介绍的命令,是将文件内容一次性显示到屏幕上。当存在大文件时,可以一页一页显示文件的内容。具体命令介绍如下。
more
more
命令可以一页一页翻动文件内容。
在使用more
命令时,可以配合使用下面一些按键,完成相应的功能。
- 空格键:代表向下翻一页。
- Enter:代表向下翻一行。
- q:代表立刻离开
more
。 - b 或 [ctrl]+b:代表往回翻页。
- /字符串:代表在显示的文件中向下查找输入的字符串。
less
less
命令也是一页一页翻动。但相比于more
,更加具有弹性,即既可以向前翻,也可以向后翻;既可以向上查找,也可以向下查找。
可以配合使用的按键有:
- 空格键:向下翻一页;
- [pagedown]:向下翻一页;
- [pageup]:向上翻一页;
- /字符串:向下查找字符串;
- ?字符串:向上查找字符串;
- n:重复前一个查找,与/或?有关;
- q:离开命令。
文件内容截取显示
我们可以将输出的数据进行一个简单的截取,取出文件的前几行或后几行。
head
head
能达到取出前面几行的要求。
语法格式:head [-n number] file
选项与参数说明:
- n:后面接数字,代表显示几行的意思。不加参数时,默认显示10行。
tail
tail
与head
功能相反,是取后面几行内容。
语法格式:tail [-n number] file
选项与参数说明:
- n:后面接数字,代表显示几行的意思。
总结
需要说明的是,以上一些命令可以配合使用,如要显示某文件第11行至20行的内容,可以配合管道符|
完成要求:head -n 20 file | tail -n 10
;再比如,在上面要求的基础上再列出行号:cat -n file | head -n 20 | tail -n 10
。
参考资料
- 《鸟哥的Linux私房菜(基础学习篇<第四版>)》