Linux 中awk命令如何从文本中提取偶数列和奇数列

 

001、提取偶数列

[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt                                                   ## 测试文本
01      02      03      04      05      06
07      08      09      10      11      12
13      14      15      16      17      18
19      20      21      22      23      24
25      26      27      28      29      30
[root@pc1 test]# awk '{for(i=2; i<=NF; i+=2){printf "%s%s", $i, (i==(NF%2==0?NF:NF-1)?ORS:OFS)}}' a.txt
02 04 06
08 10 12
14 16 18
20 22 24
26 28 30
[root@pc1 test]# awk -F "\t" -v OFS="\t" '{for(i=2; i<=NF; i+=2){printf "%s%s", $i, (i==(NF%2==0?NF:NF-1)?ORS:OFS)}}' a.txt        ## 提取偶数列
02      04      06
08      10      12
14      16      18
20      22      24
26      28      30

image

 。

 

002、提取奇数列

[root@pc1 test]# ls
a.txt
[root@pc1 test]# cat a.txt       ## 测试文本
01      02      03      04      05      06
07      08      09      10      11      12
13      14      15      16      17      18
19      20      21      22      23      24
25      26      27      28      29      30
[root@pc1 test]# awk '{for(i=1; i<=NF; i+=2) {printf "%s%s", $i, (i==(NF%2==0?NF-1:NF)?ORS:OFS)}}' a.txt
01 03 05
07 09 11
13 15 17
19 21 23
25 27 29
[root@pc1 test]# awk -F "\t" -v OFS="\t" '{for(i=1; i<=NF; i+=2) {printf "%s%s", $i, (i==(NF%2==0?NF-1:NF)?ORS:OFS)}}' a.txt     ## 提取奇数列
01      03      05
07      09      11
13      15      17
19      21      23
25      27      29

image

 .

 

posted @ 2025-11-13 23:08  小鲨鱼2018  阅读(2)  评论(0)    收藏  举报