linux 中如何将一列数据转换为指定列的数据
001、
[root@pc1 test]# ls a.txt [root@pc1 test]# cat a.txt ## 测试数据 1 2 3 4 5 6 7 8 9 10 ## 转换为两列数据 [root@pc1 test]# cat a.txt | paste -s -d " " | awk '{for (i = 1; i <= NF; i++) {if(i % 2 == 0) {print $i} else {printf("%s ", $i)}}; if((i - 1) % 2 != 0) {printf("\n")}}' 1 2 3 4 5 6 7 8 9 10
002、转换为3列数据
[root@pc1 test]# ls a.txt [root@pc1 test]# cat a.txt 1 2 3 4 5 6 7 8 9 10 ## 转换为3列数据 [root@pc1 test]# cat a.txt | paste -s -d " " | awk '{for (i = 1; i <= NF; i++) {if(i % 3 == 0) {print $i} else {printf("%s ", $i)}}; if((i - 1) % 3 != 0) {printf("\n")}}' 1 2 3 4 5 6 7 8 9 10
003、转换为7列数据
[root@pc1 test]# ls a.txt [root@pc1 test]# cat a.txt 1 2 3 4 5 6 7 8 9 10 [root@pc1 test]# cat a.txt | paste -s -d " " | awk '{for (i = 1; i <= NF; i++) {if(i % 7 == 0) {print $i} else {printf("%s ", $i)}}; if((i - 1) % 7 != 0) {printf("\n")}}' 1 2 3 4 5 6 7 8 9 10