linux 中如何提取最后一列或者最后若干列之外的所有内容

 

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
31 32 33 34 35 36 37 38 39 40             ## 提取最后一列以外的所有内容
[root@PC1 test]# awk '{for(i = 1; i <= (NF - 1); i++) {printf("%s ", $i)} {printf("\n")}}' a.txt
01 02 03 04 05 06 07 08 09
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39                ## 最后二列
[root@PC1 test]# awk '{for(i = 1; i <= (NF - 2); i++) {printf("%s ", $i)} {printf("\n")}}' a.txt
01 02 03 04 05 06 07 08
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28
31 32 33 34 35 36 37 38

 

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
31 32 33 34 35 36 37 38 39 40
[root@PC1 test]# rev a.txt | cut -d " " -f 1 --complement | rev   ## 提取最后一列以外的内容
01 02 03 04 05 06 07 08 09
11 12 13 14 15 16 17 18 19
21 22 23 24 25 26 27 28 29
31 32 33 34 35 36 37 38 39
[root@PC1 test]# rev a.txt | cut -d " " -f 1-2 --complement | rev   ## 最后两列以外
01 02 03 04 05 06 07 08
11 12 13 14 15 16 17 18
21 22 23 24 25 26 27 28
31 32 33 34 35 36 37 38

 

posted @ 2023-05-13 22:16  小鲨鱼2018  阅读(88)  评论(0编辑  收藏  举报