六周第三次课(4月27日)

本文详细介绍了 Awk 命令的各种使用方法,包括指定分割符、条件判断、数学运算等高级功能。通过实际例子展示了如何进行数据处理、筛选及格式化输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

9.6/9.7awk

-F :指定分割符

# awk -F ':' '{print $1}' test.txt          //$1表示第一段,表示所有的段用$0


打印多段

# awk -F ':' '{print $1,$3,$4}' test.txt




不指定-F选项,默认以空格或空白字符为分割符


指定打印段的分割符

# awk -F ':' '{print $1"@"$3"@"$4}' test.txt



打印包含指定字符的段

# awk '/oo/' test.txt


在指定的段匹配指定的字符

# awk -F ':' '$1 ~ /oo/' test.txt   //以冒号分割后取第一段,然后取匹配含oo的


#awk -F ':' '$1 ~ /oo+/' test.txt   //同样支持之前的+



在同一个表达式中,多个动作

# awk  -F ':' '/root/ {print $1,$3} /sshd/ {print $3,$4}' test.txt



# awk  -F ':' '/root|sshd/ {print $0}' test.txt   //打印含有root或sshd的行



数学运算相关

# awk -F ':' '$3==0 {print $1}' test.txt   //匹配第三段等于0的行,然后打印第一段




#awk -F ':' '$3>=1000 {print $0}' test.txt   //第三段大于1000的行  

注意数字不能加“”,否则以字符来处理了

# awk -F ':' '$3!=1000 {print $3}' test.txt     //打印第三段不等于1000的行的第三段  


匹配第三段小于第四段的行,并打印第三段和第四段

# awk -F ':' ' $3<$4 {print $3,$4}'  passwd

完整的写法为

# awk -F ':' ' {if ($3<$4) {print $3,$4}}'  passwd



#awk -F ':' '$3>1 && $3<7  {print $0}' test.txt    //第3段大于1小于7的行  //&&=且

#awk -F ':' '$3>1000 || $7 ~ /bash/  ' passwd      //第三段大于1000或第七段匹配bash      // ||=或



同时指定新的分割符

# awk -F ':' '{OFS="#"} $3>1000 || $7 ~ /bash/ {print $1,$3,$7}' passwd  //OFS作用是打印的时候指定分割符



打印行号:NR

# awk -F ':' '{print NR ":" $0}' test.txt

打印前10行

# awk -F ':' 'NR<=10' test.txt

# awk -F ':' 'NR<=10 && $1 ~ /root|sync/' test.txt  //前10中,含有root或sync的行



显示段数:NF

# awk -F ':' '{print NF ":" $0}' test.txt          // 每行都是7段


# awk -F ':' 'NF==7 && $1 ~ /root|sync/' test.txt    //段数为7且含有root或sync的



# awk -F ':' '{print $NR":"$NF}' test.txt   //$NR表示第n行第n段,所以7行之后是空的,$NF其实是代表每行最后一段



“==”和“=”

# head -n 3 test.txt |awk -F ':' '$1=="root"'   //匹配第一段为root的


# head -n 3 test.txt |awk -F ':' '$1="root"'     //把第一段赋值为root



计算每行第三段值的和(也就是第3列)

# awk -F ':' '{(tot=tot+$3)}; END {print tot}' test.txt


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值