ГНУ awk
руководство говорит РС:
пустая строка ""
(строка без символов) имеет особое значение в качестве значения РС. Это означает, что записи разделяются одной или несколькими пустыми строками и ничего больше.
Таким образом, ваша программа может быть разобран следующим образом:
gawk 'END{print "Number of paragraphs: "NR}' RS="" tmp.txt
- Выполните команду
gawk
.
- Сценарий
gawk
- END{print "Number of paragraphs: "NR}
(одиночные кавычки удаляются оболочкой). Когда вход завершен, он печатает значение NR, которому предшествует фраза. NR - количество прочитанных записей. Обратите внимание, что это использует неявный оператор конкатенации между фразой и NR. Также можно написать print "Number of paragraphs:", NR
, и это даст тот же результат.
RS=""
на самом деле рассматривается gawk
как RS=
(двойные кавычки удаляются оболочкой). Это устанавливает специальный режим, указанный в руководстве. Здесь две или более последовательных строк новой строки будут считаться окончанием абзаца, как и EOF.
- Файл обработан
tmp.txt
.
Таким образом, команда работает из-за специального корпуса, встроенного в gawk
.
Все в этой дискуссии относится также к стандарту awk
.
Вы можете начать с фактического заявления о проблеме и того, что вы пытаетесь сделать ... –
@ Ryan J следует считать количество абзацев? – john
на основе двух последовательных строк – john