不特殊说明的情况下,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
[[email protected] data]# vim data [[email protected] data]# cat data hello world
[[email protected] data]# awk ‘{print $1}‘ data hello #上面的命令等同于下面的 [[email protected] data]# cat data|awk ‘{print $1}‘ hello #怎么是 hello呢,world哪去了,难道是..
[[email protected] data]# awk ‘{print $1 $2}‘ data helloworld
这下hello world出来了,但是和data中不一样的啊
[[email protected] data]# awk ‘{print $1 "\t" $2}‘ data hello world
这下就差不多了把
怎样完整的输出内容呢,要一样样的
[[email protected] data]# awk ‘{ print }‘ data
上面这些都是从文件中读取 版本 的helloworld
现在再写一个 没有file 的helloworld
[[email protected] data]# awk ‘{ print $0 }‘ hello world hello world #上面这个命令中,$0 代表输入的一行字符..所以你输入什么,系统就会打印什么 [[email protected] data]# awk ‘{ print }‘ #经试验,这俩个的结果是一样的.
小提示,aws中0作为 除号 后面的数
[[email protected] data]# awk ‘$1 %2 == 0 {print $2}‘ data name2 name0 [[email protected] data]# awk ‘$1 /2 == 0 {print $2}‘ data name0 [[email protected] data]# cat data 1 name1 2 name2 0 name0
awk中的NF
awk中的NF用来表示当前行中(1行)有多少个字符块
怎么理解呢,请看下面的 试验:
[[email protected] data]# cat 1.txt 1 2 2 3 3 3 4 4 4 44 [[email protected] data]# awk ‘NF >3 { print }‘ 1.txt 4 4 4 44 [[email protected] data]# awk ‘NF >4 { print }‘ 1.txt
懂了吧
时间: 2024-10-01 09:58:41