linux 中實現資料按照指定行號順序輸出

小鲨鱼2018發表於2024-03-27

001、測試資料

[root@pc1 test01]# ls
a.txt  idx.txt
[root@pc1 test01]# cat a.txt          ## 測試資料
01 02 03 04 05 06 1
07 08 09 10 11 12 2
13 14 15 16 17 18 3
19 20 21 22 23 24 4
25 26 27 28 29 30 5
31 32 33 34 35 36 6
37 38 39 40 41 42 7
43 44 45 46 47 48 8
49 50 51 52 53 54 9
55 56 57 58 59 60 10
[root@pc1 test01]# cat idx.txt      ## 輸出順序
9
1
7
2
5
4
10
3
6
8

002、實現方法

[root@pc1 test01]# awk '{if(NR == FNR) {ay1[NR] = $0} else {print ay1[$1]}}' a.txt idx.txt  ## 按照指定順序輸出
49 50 51 52 53 54 9
01 02 03 04 05 06 1
37 38 39 40 41 42 7
07 08 09 10 11 12 2
25 26 27 28 29 30 5
19 20 21 22 23 24 4
55 56 57 58 59 60 10
13 14 15 16 17 18 3
31 32 33 34 35 36 6
43 44 45 46 47 48 8

相關文章