Shell根据模式排序文件

时间:2013-11-07 21:42:39

标签: bash shell sorting awk

假设我在第一列(不同顺序)中有两个具有相同值的文件

第一个:

2 A
6 B
3 C
1 D
4 E

第二个:

6 F
3 G
2 H
4 I
1 J

我想根据第一个文件的第一列对第二个文件进行排序。理想的输出:

2 H
6 F
3 G
1 J
4 I

2 个答案:

答案 0 :(得分:3)

如果

  • 您的第一列不会有重复值
  • f1和f2在第1列中具有相同的值。

试试这个:

awk 'NR==FNR{a[$1]=$0;next}{print a[$1]}' f2 f1

答案 1 :(得分:0)

根据数字将第二个文件中的字母放到secondArray的索引中: 例如

secondArray [6] = F, secondArray [3] = G, secondArray[2] = H

并编写它们,或使用第一个数组中的顺序通过索引secondArray获取值

result[1] = secondArray[firstArray[1]]  

,其中     firstArray [1] == 2,firstArray [1] == 6 和

secondArray[firstArray[1]]   == H ,      secondArray[firstArray[2]] ==F