Sed 指定行删除
sed -I
正则是贪婪匹配模式,人性的贪婪的。
取ip地址
[root@zhangxiangyu-58 /test]# ifconfig eth0|sed -n 2p|sed 's#^.*inet##g'|sed 's#netm.*$##g'
10.0.0.201
要取一个目标,删除目标两边的
awk是命令行操作
三剑客:
grep 过滤查找内容
Sed 取行,替换,删除,追加
awk 取列
awk [option] ‘pattern{action}’ file
参数 条件(动作) 文件名
参数 -F
Cut 按列切割
-d 制定分隔符 -f指定哪列,多列用,号 也可以用-
-F
列:$1 第一列 $2 第二列
$0 整行
$NF 最后一列 $NF-1 倒数第二列
[root@zhangxiangyu-58 ~]# awk -F ":" '{print $1,$2,$NF}' oldbouydu.txt
root x /bin/bash
bin x /sbin/nologin
daemon x /sbin/nologin
adm x /sbin/nologin
lp x /sbin/nologin
[root@zhangxiangyu-58 ~]# awk -F ":" '{print $1,$2,$(NF-1)}' oldbouydu.txt
root x /root
bin x /bin
daemon x /sbin
adm x /var/adm
lp x /var/spool/lpd
NR 行号
[root@zhangxiangyu-58 ~]# awk 'NR==2,NR==3' oldbouydu.txt
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
过滤出含有root的字符
[root@zhangxiangyu-58 ~]# awk '/root/' oldbouydu.txt
root:x:0:0:root:/root:/bin/bash
[root@zhangxiangyu-58 ~]# grep root oldbouydu.txt
root:x:0:0:root:/root:/bin/bash
[root@zhangxiangyu-58 ~]# awk /root/ oldbouydu.txt
root:x:0:0:root:/root:/bin/bash
[root@zhangxiangyu-58 ~]# awk "/root/" oldbouydu.txt
root:x:0:0:root:/root:/bin/bash
[^d] 非d ^[^d] 以非d字符开头
[root@zhangxiangyu-58 ~]# awk '/^[^d]/' oldbouydu.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
取IP地址
[root@zhangxiangyu-58 ~]# ifconfig eth0|awk 'NR==2{print $2}'
10.0.0.201