通过建站学运维1901-36任务

5.45 awk

格式:

awk -F '分割符' '动作' 文件名

例: awk -F ':' '' test |awk -F ':' '{print $1}'
5-90.png
以上就是以冒号为分割符,输出第1段的内容。
5-91.png
$1、$2、$3分别表示第一段、第二段、第三段。而$0表示整行。

自定义输出结果的分割符'{OFS="#"}'

5-92.png
注意,这个选项对$0无效。
5-93.png
手动变更分割符

条件匹配

awk -F ':' '$1 ~/oo/' test

5-94.png

多条件匹配

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

5-95.png

匹配条件为逻辑判断

[root@localhost tmp]# awk -F ':' '$3 == 0' test

5-96.png
数字逻辑运算
为数字加双引号,将会把他的属性变更为字符串型。
5-97.png
取反选择
5-98.png

多条件判断

5-99.png
&&连接表示并且

在有{OFS="#"}的情况下添加筛选条件

awk -F ':' '{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}' /etc/passwd

5-100.png

内置变量NF 与NR

5-101.png
$NF与$NR表示段数量和行数量。

变更某一段的输出值

awk -F ':' '$1="aaa"' test

5-102.png
变更某一段的输出值,可以和{OFS="#"}放在同一个单引号里。

统计某一段的值

awk -F ':' '{(tot=tot+$3)}; END {print tot}' /etc/passwd

awk的完整形式:
awk -F ':' 'BEGIN {}; {条件}; END{}' filename
其中BEGIN和END都可以省略。中间的条件是依次执行文件中的每一行。
比如这个{(tot=tot+$3)}.
他就会执行这个文件的NR(行数)次。

转载于:https://my.oschina.net/u/4067478/blog/3022653

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值