awk

来源:互联网 发布:网络社会工作局 编辑:程序博客网 时间:2024/06/03 14:48

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}'



原创粉丝点击