awk中的双文件处理

awk中的双文件处理,第1张

概述我有档案: 的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 M 我有档案:

的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中的双文件处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1023713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存