六周第五次课(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
原文地址:http://blog.51cto.com/13691454/2112889