Bash Shell根据模式对文件进行排序
假设在第1列中有两个值相同的文件(顺序不同) 第一个:Bash Shell根据模式对文件进行排序,bash,shell,sorting,awk,Bash,Shell,Sorting,Awk,假设在第1列中有两个值相同的文件(顺序不同) 第一个: 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 如果 您的第一列不会有重复的值 f1和f2在第1列中的值相同 试试这个: awk 'NR==FNR{a[$1]=$0;next}{print a[$1]}' f2 f1 根据数字将第二个文件中的字母放入secondArray的索引中: 例如
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
如果
- 您的第一列不会有重复的值
- f1和f2在第1列中的值相同
awk 'NR==FNR{a[$1]=$0;next}{print a[$1]}' f2 f1
根据数字将第二个文件中的字母放入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