码迷,mamicode.com
首页 > 其他好文 > 详细

awk ——Helloworld

时间:2015-09-16 12:59:26      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

不特殊说明的情况下,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 



懂了吧




awk ——Helloworld

标签:

原文地址:http://my.oschina.net/httpssl/blog/506712

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!