RHCE第三周 文本处理工具

发布时间 2024-01-10 17:28:42作者: q_7

一:文本查看工具

cat,tac,more,less,head,tail,wc这些命令

1:cat和tac命令

cat这个命令就是从头到尾的显示完整的文件内容,tac就是从尾到头的显示文件内容

选项:

-n :就是可以显示行数和文件内容

-A:这个就是显示文件的不同点,可以看得到空格,这个非常的重要,就是在后面写shell脚本或者剧本的时候,可以比较有什么不同的点

2:案例:

1)将多个文件的内容合并到一个文件中去

[root@server opt]# cat file1 file2
file1
file2
[root@server opt]# cat file1 file2 > file3
[root@server opt]# cat file3
file1
file2
[root@server opt]# 

就是将内容覆盖的写入到file3这个文件里面去  

2)查看有多少行

[root@server opt]# cat -n passwd |head -10
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8	halt:x:7:0:halt:/sbin:/sbin/halt
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    10	operator:x:11:0:operator:/root:/sbin/nologin
[root@server opt]# 

3)-A,查看文件的特殊字符

[root@server opt]# cat -A 11.txt 
file1$
[root@server opt]# cat -A 22.txt 
file1 $
[root@server opt]#  

就是这个$就是以什么结尾的,22.txt就是以空格结尾的,就是文件的内容是相同的,但是就是不能执行,可能就是多打了一个空格,这个需要注意,可以作比较

 

2:more和less命令

这个2个命令都是按页来查看文件的,其中less可以在线的编辑文件,more不行

1:more命令

可以根据空格键和方向键的下键就是下一页,b键和方向键的上键就是上一页,回车就是下一行

案例:

[root@server opt]# more passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync

2:less命令

可以在线编辑文件内容,搜索文件内容

案例:  

1)搜索root

按n|N 就是向下寻找|向上寻找

[root@server opt]# less passwd 
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
geoclue:x:991:986:User for geoclue:/var/lib/geoclue:/sbin/nologin
flatpak:x:990:985:User for flatpak system helper:/:/sbin/nologin
/root 

在末行模式下,/搜索的内容

2)编辑文本内容

按v键,再按i键,wq保存,q退出

3:head和tail命令

最常用的命令,就是不想显示完整的内容,可以使用

1:head命令

就是从头到尾的显示多少行,默认是10行

案例:

1)显示5行

[root@server opt]# head -n 5 passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@server opt]# head -n +5 passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@server opt]# 

都可以+5和不带上+

2)除了最后的10行其余都显示内容

[root@server opt]# head -n -10 passwd | cat -n

这个减号就是除了最后10行其余都显示出来

 

2:tail命令

就是从未到头的显示多少行

案例:

1)显示最后5行

[root@server opt]# tail -n -5 passwd 
tcpdump:x:72:72::/:/sbin/nologin
systemd-oom:x:978:978:systemd Userspace OOM Killer:/:/usr/sbin/nologin
q7:x:1000:1000:q7:/home/q7:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
memeda:x:1001:1001::/home/memeda:/bin/bash
[root@server opt]# tail -n 5 passwd 
tcpdump:x:72:72::/:/sbin/nologin
systemd-oom:x:978:978:systemd Userspace OOM Killer:/:/usr/sbin/nologin
q7:x:1000:1000:q7:/home/q7:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
memeda:x:1001:1001::/home/memeda:/bin/bash
[root@server opt]# 

2)显示除了前10行其余的都显示出来

[root@server opt]# tail -n +10 passwd  |cat -n 

第10行显示出来了所以还要加上1   tail -n +11 passwd | cat -n 

也可以这么理解从11行开始显示内容,前面的10行不显示内容

3)实时监控日志

tail -f这个命令,在排错的时候,非常的有用

 

结合使用:

就是显示第6行和第10行的内容

[root@server opt]# head -n 10 passwd |tail -n 5 
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

 就是先展示前10行的内容,再来展示10-6+1这个行,用tail来执行

 

二:文本过滤工具和文本处理工具

grep,sed,awk,cut,sort,diff这些命令

1:grep命令

这个命令非常的重要,在能够过滤出需要的东西出来

1:常见的选项

-i 忽略大小写
-o 只打印匹配出的关键字
-n 打印出行数
-c 打印出匹配的总行数
-q 静默输出(不输出任何的信息),用$?可以判断是否正确的执行了
-v 取反,就是取相反的结果
-r 递归的搜索,显示文件和文件内容
-l 只显示文件,不显示内容
-Ax 显示匹配到的行数的后面几行
-Bx 显示匹配到行数的前面几行
-Cx 显示匹配到行数的上下几行

2: