正则awk

awk

-F 指定分割符

awk -F ': ' '{print $1}' 1.txt 以冒号为分隔符 打印第一段

print为打印的意思。 $1表示打印第1字段 $0表示整行 截取多个字段 中间以逗号来分隔

不加-F选项,默认使用空格或者tab为分隔符,

 

awk -F ':' '{print $1"#"$3"#"$5}' 1.txt 以井号为分隔符 打印 1 ,3, 5 段

 

awk '/oo/' 1.tx 打印出有oo的行

 

 

awk -F ':' '$1 ~ /oo+/' 1.txt 以冒号为分割符 指定第一段有oo的行 awk默认支持正则表达式

 

 

支持多个条件匹配

awk -F ':' '/root/ {print $1,$6} /user/ {print $1,$5}' 1.txt 打印root或者user的行

awk -F ':' '/root|user/ {print $1}' 1.txt 也可以合到一起 | 表示或者

 

awk -F ':' '$3==0' 1.txt 打印第三段等于0的行

awk -F ':' '$3==0 {print $1}' 1.txt 打印第三段等于0的行 并截取第一段

awk -F ':' '$3>=1000 {print $1}' 1.txt 打印第三段大于等于1000的截取第一段

 

在和数字进行比较时,若把比较的数字用双引号括起来,那么awk不会认为是数字,而会认为是字符,那么就会按ASCII码表来排序,得不到想要的结果

awk -F ':' '$7!="/sbin/nologin" {print $0}' 1.txt 第七段不等于/sbin/nologin的

 

awk -F ':' '$3<$4' test.txt //打印第3段小于第4段的行,比较的是数字

awk -F ':' '$3==$4' 1.txt //打印第3段等于第4段的行

 

awk -F ':' '$3>"4" && $3<"8"' 1.txt $3段大于4字符 并且小于8字符 。数字使用了双引号所以表示的是字符4和8之间

 

awk -F ':' '$3>1000 || $7=="/sbin/nologin"' 1.txt $3大于1000 或者 $7等于/sbin/nologin 没有双引号就表示数字

 

awk -F ':' '$3>1000 || $7 ~ /bash/' 1.txt $3大于1000 或者$7匹配bash的

 

OFS 打印是指定分隔符

awk -F ':' '{OFS=“@”} $3>1000 {print $1,$2,$3}' 1.txt

 

NR 行

awk -F ':' '{print NR ":"$0}' 1.txt 打印出一共有多少行

 

awk -F ':' 'NR<=10 && $1 ~ /root|sync/' 1.txt 打印前十行 并且 第一段有root或者sync的行

 

 

NF 段

awk -F ':' '{print NF ":"$0}' 1.txt 打印出一行有多少段

 

 

赋值

head -n 3 1.txt | awk -F ':' '$1="root"' 前3行的第一段赋值成root

head -n 3 1.txt | awk -F ':' '{OFS=":"} $1="root"' 赋值的同时指定分割符号

 

求和

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

每行的第三段累计相加 第一行为0加第三段数字 第二行为第一行的结果加这行第三段的数字

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值