сортировка строк в Редакторе 'VI'
если мне нужно отсортировать следующие строки на основе значений слева от'='. Но сортировка должна одновременно расширять выделение до столбца после'='. Thtz мы dnt должны сортировать столбец после'='::
50599=1000000
50454=00000054
50080=00005464
50098=00000875
50661=00000665
50788=10000035
50988=10000006
50994=10000656
57009=00000005
57022=10000008
57040=10000005
57000=10000005
57060=10000089
57067=10005640
57102=00000765
57190=00000867
это нужно сделать в' VI ' редактирования файла.
результат должен быть ::
50080=00005464
50098=00000875 ...etc.
3 ответов
этот ответ приходит на 2 года позже, но все еще может быть актуальным, в визуальном режиме выберите блок, который вы хотите отсортировать и запустить:
:!вроде
Это должно работать
попробуй:
:%!sort
Он будет сортировать по алфавиту, по всей линии. Если вы хотите отсортировать численно (т. е. число в первом столбце может иметь разную ширину), попробуйте:
:%!sort -n
не беспокойтесь о =
, он не изменит ни одной строки, он просто изменит их порядок.
вы можете сделать следующее, чтобы увидеть, отсортированные выход:
:!sort %
пояснение:
-
:
: для входа в режим ex. -
!
: позволяет запускать снаряд команда. -
%
: название файла открыть.
чтобы отсортировать файл, изменив его, вы можете перенаправить его вывод во временный файл, а затем скопировать его содержимое обратно в исходный файл:
:!(sort %>/tmp/tmp;cp -f /tmp/tmp %)