使用bash在另一个csv文件中查找和替换条目

时间:2017-06-29 20:08:16

标签: bash csv awk

主档案:

A B
C D
D A
G H

参考文件:

1 A
2 B
3 C
4 D
5 G
6 H

新文件:

1 2
3 4
4 1
5 6

我想做上面的替换,我怎么能用awk或一些简单的命令行来做呢?

1 个答案:

答案 0 :(得分:1)

awk 解决方案:

awk 'NR==FNR{ a[$2]=$1; next }{ $1=a[$1]; $2=a[$2] }1' reffile mainfile

输出:

1 2
3 4
4 1
5 6
  • a[$2]=$1 - 将reffile中的数字捕获到以字母索引的数组(例如a["A"]=1

  • $1=a[$1]; $2=a[$2] - 将mainfile中的字母替换为相应的数字