awk

awk 'BEGIN{commands  } pattern {commands } END {commands } '

这三部份是可选的。且脚本通常会被包含在单引号或者双引号中:
[root@localhost test]# cat test.sh| wc -l
6
[root@localhost test]# awk 'BEGIN{ i=0 } { i++ } END { print i }' test.sh
6
[root@localhost test]# awk "BEGIN{ i=0 } { i++ } END { print i }" test.sh
6

awk的工作原理如下:
(1)执行BEGIN {command}
(2)从文件或stdin中读取一行,执行pattern {command}。重复该过程,直到文件全部被读取完毕。
(3)当读到输入流末尾时,执行END{command}语句块。
这三部份是可选的哈。
如果没有(2)部份,则执行默认的 { print },即打印每一读到的行


awk的一个例子 用于统计单词数目

echo "hello hello world" | awk 'BEGIN{FS="[^a-z]+"} {for(i=1;i<=NF;++i) words[$i]++} END{for(w in words) print w, words[w]}'
hello 2

world 1


awk匹配字符串 / /

echo "hello world" | awk '\^hello[ ]world\$ {print}'



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值