简介:
所谓的三剑客就是Linux的三个命令
awk:
作用:就是对文件的内容进行逐行截取
sed:
对文件的内容进行替换
grep:
从文件中过滤出符合条件的行
一、awk命令
格式:
awk -F "分隔符" '{print $数字}' 文件名
准备一个测试文件a.txt
postfix:x:89:89::/var/spool/postfix:/sbin/nologintcpdump:x:72:72::/:/sbin/nologintom:x:1000:1000:tom:/home/tom:/bin/bashjack007:x:1002:1002::/home/jack007:/bin/bashjack008:x:0:0::/home/jack008:/bin/bashjack:x:1003:1004::/home/jack:/bin/bashaaab:x:1004:1008::/home/aaab:/bin/bash
从这个文件中,以 : 为分隔符,提起出第三部分内容
[root@localhost tmp]# awk -F ":" '{print $3}' a.txt
得出的结果为:
89
72
1000
1002
0
1003
1004
案例:用awk截取去ip addr s ens33中的ip地址信息
[root@localhost tmp]# ip addr s ens33 | head -n3 | tail -n1 | awk -F " " '{print
$2}' | awk -F "/" '{print $1}'
192.168.31.77
二、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
三、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
案例:从a.txt中过滤出,不包含ok的行
[root@localhost ~]# grep -v "ok" a.txt
sadfafasdfasdfwergasd sdfg qwef asdf asdf
asdf s
d gas
df asdf
d#wgfr
asdf sadg asdf
no
ON#BOT=yes
ahah#ahdfasdf