Bash 在vim中对多行数字进行排序

Bash 在vim中对多行数字进行排序,bash,sorting,vim,Bash,Sorting,Vim,我有一个格式如下的文件: ... [ strNADPplus ] 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 11153 11154 11155 11156 11157 11

我有一个格式如下的文件:

...
[ strNADPplus ]                                                                 
3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457          
3458 3459 3460 3461 3462 3463 3464 11153 11154 11155 11156 11157 11158 11159 11160 
5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269          
5270 5271 5272 5273 5274 5275 5276 5277 12964 12965 12966 12967 12968 12969 12970 
5360 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 
5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375          
5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414          
5415 5416 5417 5418 5419 5420 5421 13110 13111 13112 13113 13114 13115 13116 13117 
5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478          
5479 5480 5481 5482 5483 5484 5485 5486 13173 13174 13175 13176 13177 13178 13179 
5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 13557 13558 13559 13560  
5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 13683 13684 13685 13686  
6021 6022 6023 6024 6025 6026 6027 6028 6029 13718 13719 13720 13721 13722 13723 
6339 6340 6341 6342 6343 6344 6345 6346 6347 14044 14045 14046 14047 14048 14049 
...
我想对那一行中的数字进行排序,使其看起来像:

1 2 3 4 
7 8 9 100 
101 121 345
346 348 10232
16654 ...
我第一次尝试使用
:47074743%sort n
(4707和4743是该块的行),但我只能对每行的第一个值进行排序。
然后我尝试加入选择并对行进行排序:
visual mode+J
:”我只需使用标准的外部unix工具:

:'<,'>!tr ' ' '\n' | sort -n | tr '\n' ' ' | fold -w 15 -s

:”我只需要使用标准的外部unix工具:

:'<,'>!tr ' ' '\n' | sort -n | tr '\n' ' ' | fold -w 15 -s

:“确切的布局是什么?一条线上只有多个值以适应线条长度?N值一行吗?其他一些限制条件?排序是基于行的。因此,您需要将这些值拆分,以这种方式对它们进行排序(或者使用可以对一行中的值进行操作的工具,如
awk
can;我不知道vim是否可以做到这一点,但我打赌它可以做到)。只需将这些值分布在多行中即可。我不明白为什么vim不排序(数字),即使我在一行中连接所有内容。然后在空格上拆分行,排序,然后重新连接。出于好奇,你会如何处理awk?确切的布局是什么?一条线上只有多个值以适应线条长度?N值一行吗?其他一些限制条件?排序是基于行的。因此,您需要将这些值拆分,以这种方式对它们进行排序(或者使用可以对一行中的值进行操作的工具,如
awk
can;我不知道vim是否可以做到这一点,但我打赌它可以做到)。只需将这些值分布在多行中即可。我不明白为什么vim不排序(数字),即使我在一行中连接所有内容。然后在空格上拆分行,排序,然后重新连接。出于好奇,你会如何处理awk?
:'<,'>!tr ' ' '\n' | sort -n | paste -d' ' - - -