linux查看文件内容

如果要查看文件内容,如何做呢?有相当多的命令:最常用的显示文件内容的命令是cat与more及less。此外,如果要查看一个大型文件(好几百MB时),只需要最后的几行字,如何做?用
如果要查看文件内容,如何做呢?有相当多的命令:最常用的显示文件内容的命令是cat与more及less。此外,如果要查看一个大型文件(好几百MB时),只需要最后的几行字,如何做?用tail,此外,tac命令也可以实现。下面说说各个命令的用途。

• cat:由第一行开始显示文件内容。
• tac:从最后一行开始显示,可以看出tac与cat字母顺序相反。
• nl:显示的时候,也输出行号。
• more:一页一页地显示文件内容
• less与more类似,但它可以向前翻页。
• head:只看前几行。
• tail:只看最后几行。
• od:以二进制方式读取文件内容。

直接查看一个文件的内容可以使用cat/tac/nl这几个命令。
cat(concatenate)

[root@linux ~]# cat [-AEnTv]
参数:
-A : 相当于 -vET的整合参数,可列出一些特殊字符。
-E : 将结尾的换行符 $ 显示出来。
-n : 显示行号。
-T : 将 [tab] 按键以 ^I显示出来。
-v : 列出一些看不出来的特殊字符
范例:
范例一:查看 /etc/issue这个文件的内容
[root@linux ~]# cat /etc/issue
Fedora Core release 4 (Stentz)
Kernel \r on an \m

范例二:承上题,顺便显示出行号时。
[root@linux ~]# cat -n /etc/issue
1  Fedora Core release 4 (Stentz)
2  Kernel \r on an \m
3
# 看到了。可以显示行号。对于要在大文件中找某行时,有点用处。

范例三:将 /etc/xinetd.conf的内容完整地显示出来(包含特殊字符)。
[root@linux ~]# cat -A /etc/xinetd.conf
#$
# Simple configuration file for xinetd$
#$
# Some defaults, and include /etc/xinetd.d/$
$
defaults$
{$
^Iinstances               = 60$
log_type                = SYSLOG authpriv$
log_on_success^I^I= HOST PID$
log_on_failure^I^I= HOST$
^Icps^I^I^I= 25 30$
}$
$
includedir /etc/xinetd.d$
# 在一般环境中,显示出来的结果有 [tab] 与空格键,其实看不出来,
# 那么,使用cat -A时,会将 [tab] 按键以 ^I显示,而换行符也会显示出来。
# 最特殊的当然就是换行符了。换行符在Linux与Windows是不一样的。
# Linux是以 $ 为换行符,而在Windows则是以 ^M$ 为换行符。
# 这部分会在第10章再次说明。

cat是Concatenate(连续)的简写,主要的功能是将一个文件的内容连续显示在屏幕上面。例如,上面的例子中,我们将 /etc/issue显示来。如果加上 -n的话,则每一行前面还会加上行号。笔者很少用cat。毕竟当文件内容行数超过40行以上,根本来不及看。所以,配合稍候介绍的more或者是less 比较好。此外,如果是一般的DOS文件,就需要特别注意一些奇怪的符号了,例如换行符与 [tab] 等,要显示出来,就要加入 -A之类的参数了。

tac(反向显示)

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

Kernel \r on an \m
Fedora Core release 4 (Stentz)
# 与刚刚上面的范例一比较,是最后一行先显示。


仔细看一下cat与tac,tac刚好是将cat反写过来,所以它的功能就与cat相反,cat是由“第一行到最后一行连续显示在屏幕上”,而tac则是“由最后一行到第一行反向在屏幕上显示出来”。

nl(显示时添加行号)

[root@linux ~]# nl [-bnw] 文件
参数:
-b : 指定行号指定的方式,主要有两种:
-b a : 表示不论是否为空行,也同样列出行号。
-b t : 如果有空行,空行不要列出行号。
-n : 列出行号表示的方法,主要有三种:
-n ln : 行号在屏幕的最左方显示。
-n rn : 行号在字段的最右方显示,且不加0。
-n rz : 行号在字段的最右方显示,且加0。
-w :行号字段占用的位数。
范例:
范例一:列出 /etc/issue的内容。
[root@linux ~]# nl /etc/issue
1  Fedora Core release 4 (Stentz)
2  Kernel \r on an \m

# 注意,这个文件其实有三行,第三行为空白(没有任何字符),
# 因为它是空白行,所以nl不会加上行号。如果确定要加上行号,可以这样做:

[root@linux ~]# nl -b a /etc/issue
1  Fedora Core release 4 (Stentz)
2  Kernel \r on an \m
3
# 行号加上来。如果要让行号前面自动补上0呢?可这样

[root@linux ~]# nl -b a -n rz /etc/issue
000001  Fedora Core release 4 (Stentz)
000002  Kernel \r on an \m
000003
# 自动在字段的地方补上0了。默认字段是6位数,如果想要改成3位数:

[root@linux ~]# nl -b a -n rz -w 3 /etc/issue
001     Fedora Core release 4 (Stentz)
002     Kernel \r on an \m
003
# 变成仅有3位数。

nl可以将输出的文件内容自动加上行号。其结果与cat -n不太一样,nl可以对行号做较多的设置,包括位数与是否自动补齐0等。

猜你喜欢

转载自cher.iteye.com/blog/910365