linux三剑客与正则案例

awk:三剑客之老大,擅长取列,取行,计算

参数:
!:表示取反,排除

NR:显示行号
$0:表示显示一整行内容


-F:指定分隔符或者多个分隔符

例子:使用awk取出网卡中的ip
[root@web02 oldboy]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:1F:6D:B7  
          inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe1f:6db7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:109302 errors:0 dropped:0 overruns:0 frame:0
          TX packets:90828 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:75289221 (71.8 MiB)  TX bytes:36886895 (35.1 MiB)

[root@web02 oldboy]# ifconfig eth0 |awk -F '[: ]+' 'NR==2 {print $4}'
10.0.0.3
[root@web02 oldboy]# 
例子2:取出文件中的文件权限数字
[root@web02 oldboy]# stat oldboy.txt 
  File: `oldboy.txt'
  Size: 246           Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 396746      Links: 3
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-09 19:04:35.117568571 +0800
Modify: 2019-01-09 19:04:29.682566423 +0800
Change: 2019-01-09 19:04:29.685566229 +0800
[root@web02 oldboy]# stat oldboy.txt |awk -F '[(/]' 'NR==4{print $2}'
0644
grep:过滤

参数:
-v:排除
-A数字:显示过滤的内容及接下来的几行
-n:显示行号

egerp:支持高级的正则相当于gerp -E
--color=auto:给过滤出来的内容加上颜色

-o:表示grep正则的执行过程

例子:使用egrep过滤出IP地焉

sed:替换与修改文件内容

参数:
/需要删除的内容/d:表示删除

-n:取消默认输出,一般与p配合使用
-i:修改文件内容

例子:使用sed取出网卡中的IP地址
[root@web02 oldboy]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:1F:6D:B7  
          inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe1f:6db7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:110510 errors:0 dropped:0 overruns:0 frame:0
          TX packets:91567 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:75392237 (71.8 MiB)  TX bytes:36965141 (35.2 MiB)

[root@web02 oldboy]# ifconfig eth0|sed -nr '2s#.*dr:(.*)  Bc.*$#\1#gp'
10.0.0.3
##将inet替换成oldboy
[root@web02 oldboy]# ifconfig eth0|sed -nr '2s#inet#oldboy#gp'
          oldboy addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
例子2:使用sed取出文件权限数字
[root@web02 oldboy]# stat oldboy.txt 
  File: `oldboy.txt'
  Size: 246           Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d    Inode: 396746      Links: 3
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-09 19:04:35.117568571 +0800
Modify: 2019-01-09 19:04:29.682566423 +0800
Change: 2019-01-09 19:04:29.685566229 +0800
[root@web02 oldboy]# stat oldboy.txt |sed -nr '4p'
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
[root@web02 oldboy]# stat oldboy.txt |sed -nr '4s#.*\(([0-9]+)##gp'
/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
[root@web02 oldboy]# stat oldboy.txt |sed -nr '4s#.*\(([0-9]+).*$#\1#gp'
0644

转载于:https://www.cnblogs.com/yjiu1990/p/10272984.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值