Linux三剑客

Linux三剑客

标签(空格分隔): Linux grep sed awk


[TOC]

在Linux系统当中,处理文本有三个常用的模式匹配命令 grep sed awk ,这三个命令十分灵活,应该熟练掌握

1. grep

常用场景:

ls -l | grep -name
cat test.txt | grep -v 123

2. sed

常用场景:

输出文件test.txt的2~5行
sed -n '2,5p' test.txt

3. awk

常用场景:

输出网卡eth0的IP地址
ifconfig eth0 | awk -F "[: ]+" 'NR==2 print{$4}'

解析:

awk 命令可以把文本分隔成若干部分,再通过 print 输出

eth0      Link encap:Ethernet  HWaddr 00:0c:29:49:36:e0  
      inet addr:192.168.57.145  Bcast:192.168.57.255  Mask:255.255.255.0
      inet6 addr: fe80::20c:29ff:fe49:36e0/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:300950 errors:5 dropped:0 overruns:0 frame:0
      TX packets:34769 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:34487134 (34.4 MB)  TX bytes:9606983 (9.6 MB)
      Interrupt:19 Base address:0x2000

-F "[: ]+" 参数:

-F          // 分隔多列
"[: ]+"     // 用":"和" "同时作为分隔符,"+"表示匹配多个
空格 inet addr 192.168.57.145 Bcast:192...
第一列 第二列 第三列 第四列 第五列

NR 参数:

NR==2       // 表示输出第二行

print 参数:

print $4    // 输出第四列

!!!EOF

你可能感兴趣的:(Linux三剑客)