标签:
不特殊说明的情况下,awk 都指的是 gawk
gawk is a pattern scanning and processing language.
By default it reads standard input and writes standard output.
awk 语法格式
awk ‘{pattern + action}‘ {filenames}
awk 版本的 helloworld
[root@localhost data]# vim data
[root@localhost data]# cat data
hello world
[root@localhost data]# awk ‘{print $1}‘ data hello #上面的命令等同于下面的 [root@localhost data]# cat data|awk ‘{print $1}‘ hello #怎么是 hello呢,world哪去了,难道是..
[root@localhost data]# awk ‘{print $1 $2}‘ data helloworld这下hello world出来了,但是和data中不一样的啊
[root@localhost data]# awk ‘{print $1 "\t" $2}‘ data hello world
这下就差不多了把
怎样完整的输出内容呢,要一样样的
[root@localhost data]# awk ‘{ print }‘ data
上面这些都是从文件中读取 版本 的helloworld
现在再写一个 没有file 的helloworld
[root@localhost data]# awk ‘{ print $0 }‘ hello world hello world #上面这个命令中,$0 代表输入的一行字符..所以你输入什么,系统就会打印什么 [root@localhost data]# awk ‘{ print }‘ #经试验,这俩个的结果是一样的.
小提示,aws中0作为 除号 后面的数
[root@localhost data]# awk ‘$1 %2 == 0 {print $2}‘ data name2 name0 [root@localhost data]# awk ‘$1 /2 == 0 {print $2}‘ data name0 [root@localhost data]# cat data 1 name1 2 name2 0 name0
awk中的NF
awk中的NF用来表示当前行中(1行)有多少个字符块
怎么理解呢,请看下面的 试验:
[root@localhost data]# cat 1.txt 1 2 2 3 3 3 4 4 4 44 [root@localhost data]# awk ‘NF >3 { print }‘ 1.txt 4 4 4 44 [root@localhost data]# awk ‘NF >4 { print }‘ 1.txt
标签:
原文地址:http://my.oschina.net/httpssl/blog/506712