`

awk编程基本使用示例

 
阅读更多

对于每一行,如果第三列大于0,则打印第一列,第二列*第三列的值
awk `$3>0 {print $1,$2*$3}` file1 file2
-f指定执行程序的文件
awk -f programfile inputfile  

打印整行输入
awk `{print}` 或者 awk `{print $0}`

NR当前行数,NF当前行的列数,下面这个 是打印当前行的列数,第一列和最后一列
awk `{print NR, NF, $1, $NF}`

格式化输出,跟c语言格式化类似
awk `printf("%-8s %.2f", $1,$2*$3)`

排序
awk `$3>0 {print $1,$2*$3}` file1 file2 | sort

计算后再选择
awk `$3 * $2>50 {print $1,$2*$3}` file1 file2
awk `$1=="suite" {print $1,$2*$3}` file1 file2
awk `!($NF>5 || $NF < 2)" {print $1,$2*$3}` file1 file2 

BEGIN 和 END BEGIN在处理输入前先执行BEGIN语句块
awk `BEGIN{print " name  rate number:"}{print}`
统计第三列大于50的总数,在处理完输入之后最后输入第三列大于50的总数
awk `$3>50{$emp=$emp+1} END{print $emp}`

字符串拼接
awk `{$name=$name $1 " "} END {print $name}`

内置函数length
awk `{print $1, length($1)}`

if-else
awk `$2>10{$n=$n+1,$pay=$2*3} END{if($n>0) print n else print "no"}`

while语句
awk `i=1 while(i<$3){printf("%s",$3) i=i+1}`

for
awk `{for(i=1;i<$3;i=i+1)printf("%s",$3)}`

arrays
逆序打印
awk `{line[NR]=$0} END {i=NR while(i>0){print line[i] i=i-1}}`

字段分隔符
awk `BEGIN{FS="\t"}{printf("$s %s",$1,$2) $cnt=$cnt+$2}END{print $cnt}`

正则匹配
$2包含字符串asia
awk `$2  ~ /asia/ print $3`
$2没有包含字符串asia
awk `$2  !~ /asia/ print $3`

内置变量
FNR 需要读入的行数 FILENAME 读入的文件名

赋值到字段中
awk `BEGIN{FS=OFS="\t"} $2=="aaa" {$4="bbb"} $2=="ccc" {$4="ddd"}{print}`

内置数学函数
atan2(y,x) cos(x) exp(x) int(x) log(x) rand(x) sin(x) sqrt(x) srand(x)

string内置函数
gsub(r,s) gsub(r,s,t) index(s,t) length(s) match(s,r) split(s,a) split(s,a,fs) sprinf() sub(r,s) substr(s,p)

do statement while(expr)
break continue
next exit

delete函数
for(i in pop)
  delete pop[i]

多维数组
pop[i,j]
if((i,j) in arr) ...
 
0
2
分享到:
评论

相关推荐

    sed命令和awk编程教程

    sed命令和awk编程教程,理论与示例相结合。

    AWK编程实例指南.rar_AWK ns2_awk_awk unix.shell_awk编程实例

    在UNIX的Shell里经常用到的AWK系列命令的详细例子介绍.

    linux shell awk 编程

    awk作为sehll脚本开发的三大利器之一,该文档对awk语法做了详细的介绍病附带示例,唯一不足之处在于没有形成规范的doc文档

    批量pdg转换pdf_附示例(实践大师:UNIX+awk和sed编程篇.pdg

    绝对给力的转换器,值得收藏&拥有,转换速度也给力. --"好工具要分享,必须的." 备注: 收录了pdg2.dll扩展.

    The_AWK_Programming_Language_zh_CN.pdf

    Awk 是一种使用方便且表现力很强的编程语言, 它可以应用在多种不同的计算与数据处理任务中. 这一章 是一个简短的教程, 目的是为了能让读者尽可能快地写出自己的awk 程序. 第二章对整个awk 语言进行描 述, 剩下的章节...

    awesome-awk:精选的 AWK 框架、库、软件和资源列表

    很棒的 awk 很棒的 AWK 框架、库、软件和资源的精选列表。 和。完整的文档、指南和书籍快速指南 Unix/Linux 中的 AWK 命令以及...问答AWK编程学习 AWK 编程:在类 Unix 环境中进行文本处理的快速、简单的尖端实用程序aw

    shell编程指南,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法

    第2章 使用find和xargs 14 第3章 后台执行命令 22 第4章 文件名置换 31 第5章 shell输入与输出 34 第6章 命令执行顺序 46 第二部分 文本过滤 第7章 正则表达式介绍 49 第8章 grep家族 56 第9章 AWK介绍 66 第10章 ...

    Awk学习笔记

    1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 ...14. awk编程 14.1. 变量 14.2. BEGIN模块 14.3. END模块 14.4. 重定向和管道 14.5. 条件语句 14.6. 循环 14.7. 数组 14.8. awk的内建函数

    AWK_样式扫描和处理语言

    1.12 AWK与SHELL SCRIPT混合编程............................................................................................ 14 1.13 附录:.................................................................

    shell 编程指南pdf

    11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统sort 110 11.3 uniq用法 111 11.4 join用法 112 11.5 cut用法 114 11.5.1 使用域分隔符 115 11.5.2 剪切指定域 115 11.6 paste用法 116 ...

    awk 介绍。。。awk

    a w k是所有s h e l l过滤工具中最...可以说a w k是一种自解释的编程语言,之所以要在s h e l l中使用a w k 是因为a w k本身是学习的好例子,但结合a w k与其他工具诸如g r e p和s e d,将会使s h e l l编程更加 容易。

    UNIX命令及SHELL编程

    这是一套完整的Unix培训教材,包括Unix常用命令及SHELL编程...27_高级shell编程技巧-几个脚本例子.PDF 28_高级shell编程技巧-运行级别脚本.PDF 29_cgi脚本.PDF 30_附录常用shell命令.PDF awk教程.doc shell教程.doc

    LINUX与UNIX SHELL编程指南(很全)

    11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统sort 110 11.3 uniq用法 111 11.4 join用法 112 11.5 cut用法 114 11.5.1 使用域分隔符 115 11.5.2 剪切指定域 115 11.6 paste用法 116 ...

    详解Linx awk 入门教程

    awk其实不仅仅是工具软件,还是一种编程语言。不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。 一、基本用法 awk的基本用法就是下面的形式。 # 格式 $ awk 动作 文件名 # 示例 $ awk '{print $0}'...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    第二章 使用FIND和XARGS 第三章 后台执行命令 第四章 文件名置换 第五章 SHELL输入输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 GERP家族 第九章 AWK介绍 第十章 SED用法介绍...

    Linux与unix shell编程指南

    11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统sort 110 11.3 uniq用法 111 11.4 join用法 112 11.5 cut用法 114 11.5.1 使用域分隔符 115 11.5.2 剪切指定域 115 11.6 paste用法 116 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件合并 110 11.2 系统sort 110 11.3 uniq用法 111 11.4 join用法 112 11.5 cut用法 114 11.5.1 使用域分隔符 115 11.5.2 剪切指定域 115 11.6 paste用法 116 ...

    Learning_AWK_Programming

    学习_AWK_编程Shiwang Kalkhanda的《 Learning AWK Programming》一书中的示例-2018年3月。

    LINUX与UNIX SHELL编程指南

    第二章 使用FIND和XARGS 第三章 后台执行命令 第四章 文件名置换 第五章 SHELL输入输出 第六章 命令执行顺序 第二部分 文本过滤 第七章 正则表达式介绍 第八章 GERP家族 第九章 AWK介绍 第十章 SED用法介绍 第十一...

Global site tag (gtag.js) - Google Analytics