虚位以待(AD)
虚位以待(AD)
首页 > 操作系统 > LINUX > linux文件操作之cat、more、less、head、tail、wc命令

linux文件操作之cat、more、less、head、tail、wc命令
类别:LINUX   作者:码皇   来源:互联网   点击:

一,cat命令。1,可选参数,-A, --show-all 等价于 -vET;-b, --number-nonblank 对非空输出行编号;-e 等价于 -vE。

一,cat命令

1,可选参数

-A, --show-all 等价于 -vET

-b, --number-nonblank 对非空输出行编号

-e 等价于 -vE

-E, --show-ends 在每行结束处显示 $

-n, --number 对输出的所有行编号

-s, --squeeze-blank 不输出多行空行

-t 与 -vT 等价

-T, --show-tabs 将跳 字符显示为 ^I

-u (被忽略)

-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外

2,cat一般作为查看文件命令,也可以用来创建文件

[root@localhost test]# cat > test.txt

这里是第一行

这里是第三行,第二行是空行

这里是第四行

^C

[root@localhost test]# cat test.txt

这里是第一行

这里是第三行,第二行是空行

这里是第四行

[root@localhost test]# cat test.txt/etc/passwd >test2.txt

[root@localhost test]# cat test2.txt

这里是第一行

这里是第三行,第二行是空行

这里是第四行

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

。。。。。。。。。#此处省略

3,使用cat查看文件

[root@localhost test]# cat test.txt

这里是第一行

这里是第三行, 第二行是空行

这里是第四行, 这里有个tab键

这里是第7行,第5,6行为空行

[root@localhost test]# cat -nT test.txt #对每行均显示编号

1 这里是第一行

2

3 这里是第三行,^I第二行是空行

4 这里是第四行,^I这里有个tab键

5

6

7 这里是第7行,第5,6行为空行

[root@localhost test]# cat -bT test.txt 忽略空行编号

1 这里是第一行

2 这里是第三行,^I第二行是空行

3 这里是第四行,^I这里有个tab键

4 这里是第7行,第5,6行为空行

[root@localhost test]# cat -sT test.txt #-s多个空行时只显示单个空行

这里是第一行

这里是第三行,^I第二行是空行

这里是第四行,^I这里有个tab键

这里是第7行,第5,6行为空行

[root@localhost test]# cat -snT test.txt

1 这里是第一行

2

3 这里是第三行,^I第二行是空行

4 这里是第四行,^I这里有个tab键

5

6 这里是第7行,第5,6行为空行

[root@localhost test]# cat -bnT test.txt

1 这里是第一行

2 这里是第三行,^I第二行是空行

3 这里是第四行,^I这里有个tab键

4 这里是第7行,第5,6行为空行

二、more 命令

1,常用可选参数

[root@localhost test]# more -2 test.txt #-n自定义屏幕大小为n行,即n行n行分页显示

这里是第一行

这里是第三行, 第二行是空行

这里是第四行, 这里有个tab键

这里是第7行,第5,6行为空行

[root@localhost test]# more +3 -s test.txt#+n 从第n行开始显示,-s多个空行时显示一行。

这里是第三行, 第二行是空行

这里是第四行, 这里有个tab键

这里是第7行,第5,6行为空行

-c:从底部清屏,然后显示,-p也是类似效果。

2,常用操作,与cat区别在于,more能够分页显示,按进度一页一页显示出来,而cat是一次性全部打印出来。故more更多通过键盘控制阅读。需要多用就会记得啦。

1)Enter :向下翻一行,其实可以自定义的,只是默认每按一次Enter翻一行。

2)Ctrl+F:向下滚动一屏,组合键,f不区分大小写。也可以直接按“SPASE”键实现。

3)Ctrl+B:同Ctrl +F对立,向上翻一屏。

4)v :直接调用vi编辑器。

5)!命令:看到一半是敲个shell命令。

6)q:不想看下去了,按q键退出。与man命令一样,man也是按q退出。当然也可以通过Ctrl+c直接暴力掐断。

3,实际使用还是用的常用操作比较多,比方说一般都是直接按“SPASE”键翻页,很少按Ctrl+f去翻页,以及按Eneter键一行一行翻。

还有比较方便的是可以与其他命令通过管道方式配合使用

#查看/etc/下文件,但是比较多,可以通过more实现翻页显示

[root@localhost test]# ll /etc/ |more +2 -4#从第二行开始读,每次读4行。

drwxr-xr-x. 3 root root 4096 Sep 3 05:42 abrt

drwxr-xr-x. 4 root root 4096 Sep 3 05:55 acpi

-rw-r--r--. 1 root root 44 Sep 3 22:25 adjtime

-rw-r--r--. 1 root root 1512 Jan 12 2010 aliases

--More—

三、less 命令

1,less命令与more命令类似都是通过翻页来查看文件的。

-e:当文件显示结束后,自动退出。默认退出是需要按q退出的。

-m:显示进度百分比。

[root@localhost test]# less -me /etc/shadow#-me组合可以得到more命令的效果。

-N:显示行号,在cat中是使用-n来实现。

-s:前面cat、more都讲过,多个连续空行时,显示一行。

-x 数字:将“TAB”键显示为规定的数字空格。

2,常用操作

/字符串:向下搜索

?字符串:向上搜索

d:向后翻半页,联想down。与之对应的u,up向上翻半页。

f:向后翻一页。

b:向前翻一页,联想back,向回退翻一页。

q:退出,man、more均通用。

u:向上翻半页,up之意。

空格键:向后翻一页。

Enter:滚动一行。

3,实例

通过管道技术实现分页显示

[root@localhost test]# ll -l /etc/ |less –eNm

四、head 命令

1,先来man下head。

-n 显示行数

-c 显示字节数

-q 隐藏文件名

2,常用实例

[root@localhost test]# head -n 3 test.txt #只打印前3行

这里是第一行

这里是第三行, 第二行是空行

[root@localhost test]# head -n -3 test.txt#打印开始到倒数第4行,就是把倒数3行砍掉。

这里是第一行

这里是第三行, 第二行是空行

这里是第四行, 这里有个tab键

[root@localhost test]# head -c 10 test.txt#同样只打印前10个字节。

这里是ot@localhost test]#

[root@localhost test]# head -c -10 test.txt#将倒数10个字节砍掉。

这里是第一行

这里是第三行, 第二行是空行

这里是第四行, 这里有个tab键

这里是第7行,第5,6行[root@localhost test]#

五、tail 命令

1,tail命令与head命令相对应,用法也类似,只是tail参数多一些,tail读取倒数

-n:按行计算

-c:按字节位置

-m:多字节计算

-k:按文件大小k来计算

-f:循环读取,实现实时更新显示

-s:配合-f使用,表示每次更新时间

2,实例

#读取倒数4行

[root@localhost test]# tail -n 4 test.txt

这里是第四行, 这里有个tab键

这里是第7行,第5,6行为空行

#从第4行开始读到最后

[root@localhost test]# tail -n +4 test.txt

这里是第四行, 这里有个tab键

这里是第7行,第5,6行为空行

#实现实时读取并且更新时间为每2s一次

[root@localhost test]# ping 192.168.1.1>ping.log &

[1] 8835

[root@localhost test]# tail -f -s 2ping.log

64 bytes from 192.168.1.1: icmp_seq=6ttl=64 time=1.90 ms

64 bytes from 192.168.1.1: icmp_seq=7ttl=64 time=2.77 ms

64 bytes from 192.168.1.1: icmp_seq=8ttl=64 time=1.92 ms

64 bytes from 192.168.1.1: icmp_seq=9ttl=64 time=1.91 ms

64 bytes from 192.168.1.1: icmp_seq=10ttl=64 time=2.42 ms

64 bytes from 192.168.1.1: icmp_seq=11ttl=64 time=2.68 ms

六、wc:print newline, word, and byte counts for each file。即统计文件字节数、字数、行数。

1,可选参数

-c 统计字节数。

-l 统计行数。

-m 统计字符数,注意与-c的区别,并且不能与-c同时使用。

-w 统计字数,“字”指被空白、跳格或换行符分割的字符串。

-L 打印最长行的长度。

2,实例

[root@localhost test]# cat test5.txt

1 a

23 bc

456 def

7890 hijk

[root@localhost test]# wc test5.txt

4 8 28test5.txt

#4表示行数,8个单词(字),28个字节。

#对比-c,-m和-w的区别

[root@localhost test]# less test7.txt

二三

四五六

七八九零

[root@localhost test]# wc -c test7.txt

34 test7.txt

[root@localhost test]# wc -m test7.txt

14 test7.txt

[root@localhost test]# wc -w test7.txt

4 test7.txt

#不想显示文件名的实现

[root@localhost test]# wc -m test.txt |cut-d ' ' -f 1

58

[root@localhost test]# cat test.txt |wc -m

#统计目录下文件数

[root@localhost test]# ll

total 48

-rw-r--r--. 1 root root 6065 Sep 8 09:16 ping.log

-rw-r--r--. 1 root root 2196 Sep 7 10:52 test2.txt

-rw-r--r--. 1 root root 3561 Sep 7 11:28 test3.txt

-rw-r--r--. 1 root root 14341 Sep 7 11:57 test4.txt

-rw-r--r--. 1 root root 28 Sep 8 09:50 test5.txt

-rw-r--r--. 1 root root 6 Sep 8 09:53 test6.txt

-rw-r--r--. 1 root root 34 Sep 8 09:58 test7.txt

-rw-r--r--. 1 root root 140 Sep 7 14:03 test.txt

[root@localhost test]# ll |sed '1d' |wc -l

总结:

cat、more、less都可以读文件内容,但cat不支持分页显示。more与less支持分页显示,more还能通过-n(-数字)自定义每n行分页,more可以同ctrl+B,F上下翻页,less可以直接按B,F,D,U键直接翻页。less还可以通过-e(显示完退出),-m(显示百分比进度)实现more类似效果。想要显示行号less–N,cat –n。less通过/,?后面直接跟字符串实现上下查找。

head和tail用法类似,都可以通过-n 参数读取行数,但是head–3与head –n 3一样读前3行,head –n -3则表示砍掉最后三行。tail –n 3表示读最后三行,tai –n +3表示从第3行开始到最后。

相关热词搜索: