的Result.txt
Apple fruits 10 20 30Car vehicle 40 50 60Book study 70 80 90
这里假设第二列是一个特征,第三列是Min,第四列是Median,第五列是Max.我有另一个文件config.txt,其中包含每个功能的属性,即
的config.txt
fruits Maxvehicle Medianstudy Min
所以我想编写一个脚本,只显示config.txt文件中定义的功能的列号.
预期产量:
Apple fruits 30Car vehicle 50Book study 70
我关注此链接https://stackoverflow.com/a/40206489/10220825.这里我尝试过:
awk 'FNR==NR{arr[];next} in arr {var =;print var}' result.txt config.txt
我能够将属性(如Min,Max,Median)保存在result.txt中定义的相应特征的变量中,但不能显示该变量的列.请建议我如何打印相应列的列.
解决方法$awk 'BEGIN {m["Min"]=3; m["Median"]=4; m["Max"]=5} NR==FNR {a[]=; next} {print ,,$m[a[]]}' config resultApple fruits 30Car vehicle 50Book study 70
您需要将min / median / max的映射保留到相应的列索引,并通过配置文件查找需要打印的值.
如果要打印最大/最小/中位数信息,请在打印件上添加[$2].
NR == FNR {a [$1] = $2; next}是将file1加载到以第一个字段和第二个字段作为值索引的数组中的awk习语,本质上是字典或查找表.
总结以上是内存溢出为你收集整理的awk中的双文件处理全部内容,希望文章能够帮你解决awk中的双文件处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)