Сортировка числа с плавающей запятой и awk

В vi :

:%s/^HOST/#&/

или

:g/^HOST/s//#&/

% в первой команде означает «в весь буфер ", и это краткое обозначение 1, $ , то есть от первой строки до последней. & в заменяющей части подстановки будет заменен на весь текст, соответствующий шаблону ( ^ HOST ).

Вторая команда применяет замену ( s ) ко всем строкам, совпадающим с ^ HOST , используя глобальную команду ( g ), которая vi , унаследованный от линейного редактора ed .Во втором случае команда s использует пустое регулярное выражение. Это заставляет повторно использовать последнее использованное регулярное выражение ( ^ HOST в команде g ). Замена такая же, как и в первой команде.

С sed :

sed 's/^HOST/#&/' input >output

или

sed '/^HOST/s//#&/' input >output

так же, как в vi ( sed всегда применяет все команды к каждой строке ввода stream, поэтому мы не используем ничего вроде % или g явно с sed ).

1
08.04.2017, 01:46
1 ответ

Я подозреваю, что у вас есть локаль, использующая запятую как десятичный разделитель. Это должно решить эту проблему:

awk  -F' ' '{printf "%-12s%-12s\n", $11, $9}' foo.dat | LC_ALL=C sort -g
5
27.01.2020, 23:16

Теги

Похожие вопросы