awk '{ f[$2] = $1; SUM += $1} END { for (i in f) { print f[i]/SUM, i } }' </tmp/data
Из документов энергии о шаблонах:
Соответствия \r <CR>
\n соответствует концу строки - При соответствии в строке вместо буферного текста подобран, литеральный символ новой строки.
Источник: https://stackoverflow.com/questions/71417/why-is-r-a-newline-for-vim
Поскольку @MartinvonWittich указал, что Вы хотите использовать \r
. Можно также использовать комбинацию клавиатуры:
Ctrl + v + M, который обычно дисплей get как ^M
при вводе.
%s/$/^M^M/
Вот некоторая дополнительно полезная информация о vim
относительно поиска и замены:
.
, *
, \, [
, ]
, ^
, и $
метасимволы.+
, ?
, |, {
, }
, (
, и )
должен быть оставлен для использования их специальной функции.\/
/
(используйте обратную косую черту + наклонная черта вправо для поиска наклонной черты вправо),\t
вкладка, \s
пробел\n
новая строка, \r
CR (возврат каретки = Ctrl-M = ^M)\{#\}
используется для повторения. /foo.\{2\}
будет соответствовать нечто и двум после символов. \
не требуется на закрытии} так /foo.\{2}
сделает то же самое.\(foo\)
делает обратную ссылку на нечто. Круглая скобка без Escape буквально подобрана. Здесь \
требуется для закрытия \
).\r
новая строка, \n
пустой байт (0x00).\&
амперсанд (и текст, который соответствует шаблону поиска).\1
вставляет текст первой обратной ссылки. \2
вставляет вторую обратную ссылку, и так далее.\r
вместо \n
. Я думаю, что ответ сводится к “Vim, является странным”, но может быть некоторая теперь забытая историческая причина. самопроверка
– Gilles 'SO- stop being evil'
20.09.2013, 01:17
\r
a <CR>
. Это просто. Но я согласился бы с Вашим комментарием, что это странно.
– slm♦
20.09.2013, 01:54