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

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、提取奇数列