linux 中实现数据按照指定行号顺序输出

 

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

 。

 

posted @ 2024-03-27 18:23  小鲨鱼2018  阅读(13)  评论(0编辑  收藏  举报