Linux 中实现文本按照指定的列数输出
001、生成测试数据
[root@PC1 test]# ls [root@PC1 test]# touch {001..100}.txt ## 生成测试数据 [root@PC1 test]# ls 001.txt 009.txt 017.txt 025.txt 033.txt 041.txt 049.txt 057.txt 065.txt 073.txt 081.txt 089.txt 097.txt 002.txt 010.txt 018.txt 026.txt 034.txt 042.txt 050.txt 058.txt 066.txt 074.txt 082.txt 090.txt 098.txt 003.txt 011.txt 019.txt 027.txt 035.txt 043.txt 051.txt 059.txt 067.txt 075.txt 083.txt 091.txt 099.txt 004.txt 012.txt 020.txt 028.txt 036.txt 044.txt 052.txt 060.txt 068.txt 076.txt 084.txt 092.txt 100.txt 005.txt 013.txt 021.txt 029.txt 037.txt 045.txt 053.txt 061.txt 069.txt 077.txt 085.txt 093.txt 006.txt 014.txt 022.txt 030.txt 038.txt 046.txt 054.txt 062.txt 070.txt 078.txt 086.txt 094.txt 007.txt 015.txt 023.txt 031.txt 039.txt 047.txt 055.txt 063.txt 071.txt 079.txt 087.txt 095.txt 008.txt 016.txt 024.txt 032.txt 040.txt 048.txt 056.txt 064.txt 072.txt 080.txt 088.txt 096.txt
002、paste的命令实现按照指定列数输出
[root@PC1 test]# ls | paste - | head ## 单列输出 001.txt 002.txt 003.txt 004.txt 005.txt 006.txt 007.txt 008.txt 009.txt 010.txt [root@PC1 test]# ls | paste - - | head ## 双列输出 001.txt 002.txt 003.txt 004.txt 005.txt 006.txt 007.txt 008.txt 009.txt 010.txt 011.txt 012.txt 013.txt 014.txt 015.txt 016.txt 017.txt 018.txt 019.txt 020.txt [root@PC1 test]# ls | paste - - - | head ## 三列输出 001.txt 002.txt 003.txt 004.txt 005.txt 006.txt 007.txt 008.txt 009.txt 010.txt 011.txt 012.txt 013.txt 014.txt 015.txt 016.txt 017.txt 018.txt 019.txt 020.txt 021.txt 022.txt 023.txt 024.txt 025.txt 026.txt 027.txt 028.txt 029.txt 030.txt
。
003、xargs命令实现
[root@PC1 test]# ls 001.txt 009.txt 017.txt 025.txt 033.txt 041.txt 049.txt 057.txt 065.txt 073.txt 081.txt 089.txt 097.txt 002.txt 010.txt 018.txt 026.txt 034.txt 042.txt 050.txt 058.txt 066.txt 074.txt 082.txt 090.txt 098.txt 003.txt 011.txt 019.txt 027.txt 035.txt 043.txt 051.txt 059.txt 067.txt 075.txt 083.txt 091.txt 099.txt 004.txt 012.txt 020.txt 028.txt 036.txt 044.txt 052.txt 060.txt 068.txt 076.txt 084.txt 092.txt 100.txt 005.txt 013.txt 021.txt 029.txt 037.txt 045.txt 053.txt 061.txt 069.txt 077.txt 085.txt 093.txt 006.txt 014.txt 022.txt 030.txt 038.txt 046.txt 054.txt 062.txt 070.txt 078.txt 086.txt 094.txt 007.txt 015.txt 023.txt 031.txt 039.txt 047.txt 055.txt 063.txt 071.txt 079.txt 087.txt 095.txt 008.txt 016.txt 024.txt 032.txt 040.txt 048.txt 056.txt 064.txt 072.txt 080.txt 088.txt 096.txt [root@PC1 test]# ls | xargs -n 10 ## 按照10列输出 001.txt 002.txt 003.txt 004.txt 005.txt 006.txt 007.txt 008.txt 009.txt 010.txt 011.txt 012.txt 013.txt 014.txt 015.txt 016.txt 017.txt 018.txt 019.txt 020.txt 021.txt 022.txt 023.txt 024.txt 025.txt 026.txt 027.txt 028.txt 029.txt 030.txt 031.txt 032.txt 033.txt 034.txt 035.txt 036.txt 037.txt 038.txt 039.txt 040.txt 041.txt 042.txt 043.txt 044.txt 045.txt 046.txt 047.txt 048.txt 049.txt 050.txt 051.txt 052.txt 053.txt 054.txt 055.txt 056.txt 057.txt 058.txt 059.txt 060.txt 061.txt 062.txt 063.txt 064.txt 065.txt 066.txt 067.txt 068.txt 069.txt 070.txt 071.txt 072.txt 073.txt 074.txt 075.txt 076.txt 077.txt 078.txt 079.txt 080.txt 081.txt 082.txt 083.txt 084.txt 085.txt 086.txt 087.txt 088.txt 089.txt 090.txt 091.txt 092.txt 093.txt 094.txt 095.txt 096.txt 097.txt 098.txt 099.txt 100.txt
。
004、awk实现
[root@PC1 test]# ls 001.txt 009.txt 017.txt 025.txt 033.txt 041.txt 049.txt 057.txt 065.txt 073.txt 081.txt 089.txt 097.txt 002.txt 010.txt 018.txt 026.txt 034.txt 042.txt 050.txt 058.txt 066.txt 074.txt 082.txt 090.txt 098.txt 003.txt 011.txt 019.txt 027.txt 035.txt 043.txt 051.txt 059.txt 067.txt 075.txt 083.txt 091.txt 099.txt 004.txt 012.txt 020.txt 028.txt 036.txt 044.txt 052.txt 060.txt 068.txt 076.txt 084.txt 092.txt 100.txt 005.txt 013.txt 021.txt 029.txt 037.txt 045.txt 053.txt 061.txt 069.txt 077.txt 085.txt 093.txt 006.txt 014.txt 022.txt 030.txt 038.txt 046.txt 054.txt 062.txt 070.txt 078.txt 086.txt 094.txt 007.txt 015.txt 023.txt 031.txt 039.txt 047.txt 055.txt 063.txt 071.txt 079.txt 087.txt 095.txt 008.txt 016.txt 024.txt 032.txt 040.txt 048.txt 056.txt 064.txt 072.txt 080.txt 088.txt 096.txt [root@PC1 test]# ls | awk '{if(NR % 10 == 0) {print $0} else {printf("%s\t", $0)}}' ## 按照10列输出 001.txt 002.txt 003.txt 004.txt 005.txt 006.txt 007.txt 008.txt 009.txt 010.txt 011.txt 012.txt 013.txt 014.txt 015.txt 016.txt 017.txt 018.txt 019.txt 020.txt 021.txt 022.txt 023.txt 024.txt 025.txt 026.txt 027.txt 028.txt 029.txt 030.txt 031.txt 032.txt 033.txt 034.txt 035.txt 036.txt 037.txt 038.txt 039.txt 040.txt 041.txt 042.txt 043.txt 044.txt 045.txt 046.txt 047.txt 048.txt 049.txt 050.txt 051.txt 052.txt 053.txt 054.txt 055.txt 056.txt 057.txt 058.txt 059.txt 060.txt 061.txt 062.txt 063.txt 064.txt 065.txt 066.txt 067.txt 068.txt 069.txt 070.txt 071.txt 072.txt 073.txt 074.txt 075.txt 076.txt 077.txt 078.txt 079.txt 080.txt 081.txt 082.txt 083.txt 084.txt 085.txt 086.txt 087.txt 088.txt 089.txt 090.txt 091.txt 092.txt 093.txt 094.txt 095.txt 096.txt 097.txt 098.txt 099.txt 100.txt
。