awk中的双文件处理
发布时间:2020-12-14 00:32:46 所属栏目:Linux 来源:网络整理
导读:我有档案: 的Result.txt Apple fruits 10 20 30Car vehicle 40 50 60Book study 70 80 90 这里假设第二列是一个特征,第三列是Min,第四列是Median,第五列是Max.我有另一个文件config.txt,其中包含每个功能的属性,即 的config.txt fruits Maxvehicle Medianst
我有档案:
的Result.txt Apple fruits 10 20 30 Car vehicle 40 50 60 Book study 70 80 90 这里假设第二列是一个特征,第三列是Min,第四列是Median,第五列是Max.我有另一个文件config.txt,其中包含每个功能的属性,即 的config.txt fruits Max vehicle Median study Min 所以我想编写一个脚本,只显示config.txt文件中定义的功能的列号. 预期产量: Apple fruits 30 Car vehicle 50 Book study 70 我关注此链接https://stackoverflow.com/a/40206489/10220825.这里我尝试过: awk 'FNR==NR{arr[$2];next} $1 in arr {var =$2;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[$1]=$2; next} {print $1,$2,$m[a[$2]]}' config result Apple fruits 30 Car vehicle 50 Book study 70 您需要将min / median / max的映射保留到相应的列索引,并通过配置文件查找需要打印的值. 如果要打印最大/最小/中位数信息,请在打印件上添加[$2]. NR == FNR {a [$1] = $2; next}是将file1加载到以第一个字段和第二个字段作为值索引的数组中的awk习语,本质上是字典或查找表. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |