Linux常用文本操作命令 2019-05-19
2019-05-19 本文已影响0人
我是布谷鸟
关于文本的工具,比较常见的有vi、sed、awk、grep等
sed工具:
sed工具最常用来批量编辑文档,例如文本的替换、删除和添加,查看文档是最基本的功能。
①:查看passwd文档的第十行。
[root@controller ~]# sed -n 10p passwd
operator:x:11:0:operator:/root:/sbin/nologin
②:查看passwd文档的第十到第十二行。
[root@controller ~]# sed -n 10,20p passwd
[operator+x+11+0+operator+/root+/sbin/nologin]
[games+x+12+100+games+/usr/games+/sbin/nologin]
[ftp+x+14+50+FTP User+/var/ftp+/sbin/nologin]
③:替换passwd中所有的“:”为“+”。
格式:sed 's/将要替换的内容/替换后的内容/g' file
[root@controller ~]# sed 's/:/+/g' passwd (不加-i参数,相当于只预览不修改)
[root@controller ~]# sed -i 's/:/+/g' passwd
(-i参数,直接修改文档)
awk工具:
经常用来定位文档内容并输出指定位置的文本,很高级。
①:查询包含关键字”root“的行。
[root@controller ~]# cat passwd | awk '/root/{print}'
[root+x+0+0+root+/root+/bin/bash]
[operator+x+11+0+operator+/root+/sbin/nologin]
②:以“+”为分割符,查看包含关键字“root”行的第一个字符和最后一个字符。
[root@controller ~]# cat passwd | awk -F "+" '/root/{print$1 $NF}'
root/bin/bash
operator/sbin/nologin
grep工具:
是另一种定位文档内容的工具。
①:查看包含关键字”sbin“的所有行。
[root@controller ~]# grep sbin passwd
bin+x+1+1+bin+/bin+/sbin/nologin
daemon+x+2+2+daemon+/sbin+/sbin/nologin
②:查看以”m“开始,以”nologin“结束的所有行。
”m.*nologin“:表示查找关键字”m...(无论什么多少内容)...nologin"的行。
“^”:表示每行的开头。
“$”:表示每行的结尾。
[root@controller ~]# grep '^m.*nologin$' passwd
mail+x+8+12+mail+/var/spool/mail+/sbin/nologin
mysql+x+27+27+MySQL Server+/var/lib/mysql+/sbin/nologin
mongodb+x+184+992+MongoDB Database Server+/var/lib/mongodb+/sbin/nologin
memcached+x+995+991+Memcached daemon+/run/memcached+/sbin/nologin
③:查看以”[“开头,以‘]’结尾的所有行。
"\":转义字符,它后面跟着的字符都会被识别为纯字符,没有任何含义。
[root@controller ~]# grep '^\[.*\]$' passwd