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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux20180503 六周第五次课(5月3日)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扩展的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习笔记第五周第五次课(3月9日)

五周第五次课(3月9日)

Linux20180424五周第五次课(4月24日)

Linux20180424五周第五次课(4月24日)

Linux20180424五周第五次课(4月24日)

九周第五次课(2月27日)