awk常用案例

1、取出/etc/passwd中的第1行的第1列,第3列和最后一列
awk  -F:  'NRՎҧ1{print $1,\(3,\)NF}' /etc/passwd

2、取出/etc/passwd的第1行
awk 'NR==1' /etc/passwd

3、取出第2行到第5行的内容
awk 'NR>=2 && NR<=5' /etc/passwd

4、过滤出/etc/passwd文件中包含root或nobody的行
awk '/root|nobody/' /etc/passwd

5、使用awk取出ls -lh 的大小列和最后一列
ls -lh /etc/hosts |awk '{print \(5,\)NF}' |column -t

6、取出/etc/passwd中的第1列,第3列和最后一列
awk -F':'   '{print $1,\(3,\)NF}' /etc/passwd|column -t

7、指定复杂分隔符取出ip
ip a s eth0 | awk 'NR==3'|awk -F'[ /]+' '{print $3}'

8、取出/etc/passwd文件中第3列大于大于100的行,取出这行的第1列,第3列和最后一列
awk -F':'  '$3>100{print $1,\(3,\)NF}' /etc/passwd|column -t

9、如果系统swap使用超过0则输出"异常系统开始占用swap"
free |awk '/Swap/ ՎҐ $3 ՎҲ 0 {print "异常系统开始占用swap"}'

10、过滤出/etc/passwd第4列的数字是以0或1开头的行,输出第1列,第3列,第4列
awk -F':' '$4 ~ /[1]/ {print $1,$3}' /etc/passwd

11、统计与计算
统计次数
awk  '{i=i+1} END{print i}' /etc/passwd

计算总和
seq 10 > num.txt计算num.txt每一行的数字的总和
awk '{i=i+$1}END{print i}' num.txt

取出第三列等于0,打印出第三列和第五列的内容
awk -F : '{if($3==0)print $3,$5}' /etc/passwd


  1. 01 ↩︎

posted @ 2024-07-12 11:30  还得多长时间·  阅读(19)  评论(0编辑  收藏  举报
//雪花飘落效果