码迷,mamicode.com
首页 > 系统相关 > 详细

Linux20180503 六周第五次课(5月3日)awk扩展

时间:2018-05-04 21:59:34      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:awk

 六周第五次课(5月3日)
复习
扩展
awk 中使用外部shell变量技术分享图片http://ask.apelearn.com/question/199 

相对来说,awk更像是一种简单的编程语言 


A=44echo "ABCD" | awk -v GET_A=$A ’{print GET_A}’
说明:-v选项用于定义参数,这里表示将变量A的值赋予GET_A。
有多少个变量需要赋值,就需要多少个-v选项。与之等价的:应用于脚本中:


技术分享图片

技术分享图片


awk 合并一个文件 技术分享图片http://ask.apelearn.com/question/493 
我有这样的需求,需要把两个文件中,第一列相同的行合并到同一行中。举个例子,有两个文件,内容如下
cat 1.txt
1 aa
2 bb
3 ee
4 ss

cat 2.txt
1 ab
2 cd
3 ad
4 bd
5 de

合并后的结果为:

1 ab aa
2 cd bb
3 ad ee
4 bd ss
5 de

实现的命令为:
awk 'NR==FNR{a[$1]=$2}NR>FNR{print $0,a[$1]}'  1.txt  2.txt
技术分享图片

这个涉及到

解释:NR表示读取的行数,FNR表示读取的当前行数
所以其实NR==FNR 就表示读取2.txt的时候。 同理NR>FNR表示读取1.txt的时候
数组a其实就相当于一个map把一个文件多行连接成一行 技术分享图片http://ask.apelearn.com/question/266 

awk中gsub函数的使用 技术分享图片http://ask.apelearn.com/question/200 

awk 截取指定多个域为一行 技术分享图片http://ask.apelearn.com/question/224 

过滤两个或多个关键词 技术分享图片http://ask.apelearn.com/question/198 

用awk生成以下结构文件 技术分享图片http://ask.apelearn.com/question/5494 

awk用print打印单引号 技术分享图片http://ask.apelearn.com/question/1738 

合并两个文件 技术分享图片http://ask.apelearn.com/question/945 

awk的参考教程 技术分享图片http://www.cnblogs.com/emanlee/p/3327576.html 


Linux20180503 六周第五次课(5月3日)awk扩展

标签:awk

原文地址:http://blog.51cto.com/13691454/2112889

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