Использованиеsed
:
sed -i -e 's/ /\n/' <(sort -n <(sed -e 'N;s/\n/ /' in.txt))
Пояснения:
sed -e 'N;s/\n/ /' in.txt
, соединяющие каждые две строки вместе с одним пробелом sort -n
, выполняющая числовую сортировку sed -e 's/ /\n/'
, мы разбиваем строку на две отдельные строки в соответствии с единым пробелом между ними. -i
запишет изменения во входной файл на месте, используя -i.bak
сначала создаст резервную копию из входного файла. Я бы сделал это, используя диапазон адресов . Мы хотим начать, когда увидим second-option
, и закончить, когда увидим пустую строку :
#!/bin/sed -f
/^#.*second-option/,/^#? *$/s/^# //
# from | to | substitute
$ sed -e '
/^#[[:blank:]]*second-option[)]$/!b
:a;$!N;s/\\$/&/;ta
s/\(\n\)#/\1/g;s/^#//
' file
В командной строке bash
вPosix sed
Или следующее с Gnu sed:
$ sed -e '/^#\s*second-option[)]$/,/[^\]$/s/^#//' file