`
weiyinchao88
  • 浏览: 1184113 次
文章分类
社区版块
存档分类
最新评论

awk的几个常用高级用法

 
阅读更多

用awk比较多,以下几个是常用的稍微高级一点的用法

1、同时指定多个分割符
这时应该把分隔符写成放到方括号中,如$awk -F'[ :/t]' '{print $1,$3}' test

此时指定了空格,:号,tab三个作为分隔符


2、awk的key的变态用法
awk '{a[$1,"/t", $2] += $4} END {for (uin in a) printf("%s/t%d/n", uin, a[uin]) }' test
用$1"/t"$2组成一维数组的key,这样可以用这种方式来处理很多复杂的二维数据逻辑


3、awk 的范围模板
范围模板匹配从第一个模板的第一次出现到第二个模板的第一次出现之间所有行。如果有一个模板没出现,则匹配到开头或末尾。

如$ awk '/root/,/mysql/' test将显示root第一次出现到mysql第一次出现之间的所有行。

4、awk的重定向
awk 可使用shell的重定向符进行重定向输出,如:$ awk '$1 = 100 {print $1 > "output_file" }' test。上式表示如果第一个域的值等于100,则把它输出到output_file中。也可以用>>来重定向输出,但不清空文件,只做追加操作。

这样可以利用重定向,可以把不同的结果集写入到不同的文件里
比如,我经常要跑出vip1,2,3,4,5,6的6份文件,那么就可以写一个脚本,一次性都跑出来了


5、 awk -F"|" 'NR == FNR { a[$1] = $2 } NR > FNR { if (a[$1]!=""){ a[$1] = $2 - a[$1]; if(a[$1] > 0 && $2 == 2) print $0;} }' test test1
还有涉及2个文件的时候,NR,FNR一起用,也比较少见的

分享到:
评论

相关推荐

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

    Linux与unix shell编程指南.rar 第一部分 shell 第1章 文件安全与权限 1 第2章 使用find和xargs 14 ...第27章 几个脚本例子 306 第28章 运行级别脚本 318 第29章 cgi脚本 325 附录 常用shell命令 350

    UNIX命令及SHELL编程

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

    Linux命令学习 shell pdf格式

    第一部分 shell 第一章 文件安全与权限 第二章 使用find和xargs 第三章 后台执行命令 ...第二十七章 几个脚本例子 第二十八章 运行级别脚本 附录 常用shell命令 另外附有Linux命令说明(doc版,32页)

    Linux Shell 编程 入门、提高、精通

    第一部分 shell 第1章文件安全与权限 第2章使用find和xargs 第3章后台执行命令 第4章文件名置换 第5章shell输入与输出 ...第27章几个脚本例子 第28章运行级别脚本 第29章cgi 脚本 附录常用shell命令

    Linux与unix shell编程指南.rar

    shell,shell脚本,本书共分五部分全。grep家族,sed,AWK,正则表达式,tr用法 第一部分 shell 第1章 文件安全与权限 1 ...第27章 几个脚本例子 306 第28章 运行级别脚本 318 第29章 cgi脚本 325 附录 常用shell命令 350

    Linux Shell编程3/3

    Linux Shell编程经典著作: 第一部分SHELL |_文件安全与权限 |_..._…… 第五部分高级shell编程技巧 |_深入讨论|_shell工具 |_几个脚本例子 |_运行级别脚本 |_cgi脚本 附录常用shell命令

    Linux Shell编程1/3

    Linux Shell编程经典著作: 第一部分SHELL |_文件安全与权限 |_..._…… 第五部分高级shell编程技巧 |_深入讨论|_shell工具 |_几个脚本例子 |_运行级别脚本 |_cgi脚本 附录常用shell命令

    Linux Shell编程2/3

    Linux Shell编程经典著作: 第一部分SHELL |_文件安全与权限 |_..._…… 第五部分高级shell编程技巧 |_深入讨论|_shell工具 |_几个脚本例子 |_运行级别脚本 |_cgi脚本 附录常用shell命令

    shell命令精品教程

    基础s h e l l编程 16、shell脚本介绍 17、条件测试...高级shell编程技巧 25、深入讨论 26、shell 工具 27、几个脚本例子 28、运行级别脚本 29、cgi 脚本 附录常用...

    绝版高清经典Linux与UNIX_Shell编程指南中文版

    shell 文件安全与权限 使用find 和xargs 后台执行命令 文件名置换 shell输入与输出 命令执行顺序 文本过滤正则表达式介绍 grep 家族 ... 几个脚本例子 运行级别脚本 cgi脚本 常用shell命令

    LINUX与UNIX_Shell编程指南

    第1章文件安全与权限 第一部分s h e l l ? 文件和目录的权限。 ? setuid。 ? chown和c h g r p。...第9章AWK 介绍 第10章sed 用法介绍 ...第27章几个脚本例子 第28章运行级别脚本 第29章cgi 脚本 附录常用shell命令

    linux shell 编程教程

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    shell 编程指南pdf

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

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

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    linux与unix shell编程指南.rar

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    linux与unix shell 编程(下)

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    LINUX与UNIX SHELL编程指南.rar

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    Linux与unix shell编程指南1.rar

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

    LINUX与UNIX SHELL编程指南

    3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 ...

Global site tag (gtag.js) - Google Analytics