bash-根据file2中的ID查找file1中的名称

时间:2018-12-01 00:04:22

标签: bash

很抱歉,如果这是重复的,但是我进行了搜索,但没有发现完全相同的问题。所以我有

文件1:
亚伦ID00456
布拉德ID00123
卡西ID00789
道格ID12345
伊桑ID05555

文件2:
ID12345
ID00123
ID00456

保持File2中ID的顺序,我希望将File3输出为:
道格ID12345
布拉德ID00123
亚伦ID00456

2 个答案:

答案 0 :(得分:1)

尝试使用此脚本(假设File1.txt和File2.txt位于脚本的同一目录中)。

#!/bin/bash
while read -r ID2
do
  while read -r NAME ID1
  do
    if [ "$ID1" = "$ID2" ]
    then
      echo $NAME $ID1 >> File3.txt
    fi
  done < File1.txt
done < File2.txt

然后在与目录相同的目录中找到File3.txt:

Doug ID12345
Brad ID00123
Aaron ID00456

答案 1 :(得分:1)

awk来营救!

$ awk 'NR==FNR {a[$2]=$1; next} 
               {print a[$1],$1}' file1 file2

Doug ID12345
Brad ID00123
Aaron ID00456