shell训练计划30天之第五天

一、一些特殊字符的含义

1.数学运算符

= 为赋值

== 为等于

!= 为不等于

>= 为大于等于

<= 为小于等于

&& 并且

|| 或者

~ 匹配

2.其他字符

OFS 用于定义输出打印的分隔符

NR 表示行号

NF 表示段号

tot 求和

$0 所有段

"1000" 字符,所有数字加双引号为字符

二、和sed的差异

支持分段,可以针对每段进行匹配

三、命令实例

awk -F ':' 'print $1' test.txt 以:分段,打印第一段

awk -F ':' 'print $1,$2,$3' test.txt 以:分段,打印第一、二、三段

awk -F ':' 'print $1"#"$2"#"$3' test.txt 以:分段,用#做分隔符打印第一、二、三段

awk -F ':' '{OFS="#"}' $3>1000 || $7 ~ /bash/' test.txt 以:分段,用#做分隔符打印第三段大于1000,或者第七段值为bash的行

awk ‘/oo+/’ 打印含有oo的行

awk -F ':' '$1 ~ /oo/' test.txt 以:分段,打印第一段含有oo的行

awk -F ':' '/root|/ {print $1,$3} /user/ {print $1,$4}' test.txt 以:分段,含有root的打印第一段和第三段,含有user的打印第一段和第四段

awk -F ':' '/root|user/' {print $0} test.txt 以:分段,含有root或者user的打印整行

awk -F ':' '$3==0' {print $1} test.txt 以:分段,如果第三段等于零,打印第一段

awk -F ':' '$3=="1000" {print $0}' test.txt 以:分段,如果第三段等于字符1000 就打印整行

awk -F ':' '$3==1000 {print $0}' 以:分段,如果第三段等于1000就答应整行

awk -F ':' '$7!="/sbin/nologin" {print $0}' test.txt 以:分段,如果第七段不等于/sbin/nologin 就打印整行

awk -F ':' '$3<$4' test.txt 以:分段,如果第三段小于第四段就打印

awk -F ':' '$3<"5"&&$5<"7"' test.txt 以:分段,如果第三段小于字符5,并且第七段小于字符7就打印整行

awk -F ':' '$3>1000||$7 ~ /bash/' test.txt 以:分段,如果第三段大于1000或者第七段为bash就打印整行

awk -F ':' '{print NR ":" $0}' test.txt 以:分段,打印所有行和行号

awk -F ':' '{print NF ":" $0}' test.txt 以:分段,打印所有行和总段数

awk -F ':' 'NR<=10' test.txt 打印前十行

awk -F ':' 'NR<=10'&&$1 ~/root|sync/' test.txt 以:分段,打印前十行中含有root或者sync的行

awk -F ':' 'NF=6&&$1 ~/root|sync/' test.txt 以:分段,打印第六段有root或者sync的行

awk -F ':' '{print $NR ":" $NF}' test.txt 以:分段,打印每行的第七段

head -n 3 /etc/passwd | awk -F ':' '$1="root"' 将前三行的第一段替换为root并打印

awk -F ':' '{(tot=tot+$3)}; END {print tot}' test.txt 计算整个文件第三段的和

打印第一遍的时候tot为0加上第一行第三段的数值,第二遍的时候是第一行第三段的数值和第二段第三行的数值在相加以此类推,直至结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值