十二.linux三剑客
awk作用:就是对文件的内容进行逐行截取例如:截取去,每个用户的uidsed作用:对文件的内容进行替换例如:将文件中的abc替换为qqgrep作用:从文件中过滤去符合条件的行例如:从文件a.txt中过滤去包含root的行
12.1 awk命令
格式:awk - F "分隔符" '{print $数字}' 文件名
准备一个测试文件a.txt
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
tom:x:1000:1000:tom:/home/tom:/bin/bash
jack007:x:1002:1002::/home/jack007:/bin/bash
jack008:x:0:0::/home/jack008:/bin/bash
jack:x:1003:1004::/home/jack:/bin/bash
aaab:x:1004:1008::/home/aaab:/bin/bash
从这个文件中,以 : 为分隔符,提起出第三部分内容
[root@localhost tmp]# awk -F ":" '{print $3}' a.txt
89
72
1000
1002
0
1003
1004
12.2 sed命令
格式:sed -i s/原始内容/替换内容/g 文件名
s///g仅仅是一个格式,也可以写成 s@@@g 或者 s###g,甚至写成 saaag
准备一个测试文件
[root@localhost ~]# cat a.txt
sadfafasdfasd//fwergasd sdfg qwef asdf asdf
asdf s
d gas
df asdf
dw/gfr
asdf ok
asdf sadg as/df
no
ONBOOT=no
SELINUX=ok
ahaha///hdfa/sdf
案例:将a.txt中的 ONBOOT=no 修改为 ONBOOT=yes
sed -i "s/ONBOOT=no/ONBOT=yes/g" a.txt
12.3 grep 命令
grep "过滤的目标" 文件名
测试文件
[root@localhost ~]# cat a.txt
sadfafasdfasdfwergasd sdfg qwef asdf asdf
asdf s
d gas
df asdf
d#wgfr
asdf ok
asdf sadg asdf
no
ON#BOT=yes
SELIN#/UX=ok
ahah#ahdfasdf
案例:从a.txt中过滤出,包含ok的行
[root@localhost ~]# grep "ok" a.txt
asdf ok
SELIN#/UX=ok