如果查询列与条件匹配,则获取列的值 - linux

时间:2014-12-15 10:04:31

标签: linux

所以我有一个包含工资信息栏的文件(例如2674美元) -

   indi  salary
   sam    2674
   john   6375
   max    9547

另一个带有工资等级(column1& colum2)的文件在其对应的等级(第3列)

salary_min salary_max Rank
2000           4000    Deputy
4000           6000    secretary
6000           8000    Assistant
8000           10000   Manager

现在我想根据工资将文件1中的那些人分配到相应的等级

所以最终的输出是

indi    Rank
 sam    Deputy
 john   Assistant
 max    Manager

如何在相同数据集类型的linux中实现此目的,但数据量更大。 谢谢你的建议 中号

1 个答案:

答案 0 :(得分:1)

这对我有用

awk '{ a[$1] = a[$1] "$2 >= " $2 " && $2 <= " $3 " ? \"" $4 "\" : "; } END { for (i in a) print "$1 == \"" i "\" {

print $0 \"\t\" (" a[i] "\"\"); }"; }' file2.txt > tmp.awk awk -f tmp.awk file1.txt > newfile.txt