Ваш первый пример использует две общие ярлыки AWK: 1
это просто шаблон, который всегда верно, поэтому действие по умолчанию, который является «напечатать строку», выполняется для каждой строки. Тогда существует правило с пустым шаблоном (что также всегда верно, но вы не можете опустить как шаблон, так и действие), который в своем действии просто печатает пустую строку.
Ваш второй пример изменяет O utput R ecord S eparator, который, как правило, только один конец-линии, чтобы быть два, так что просто скопировать каждую строку будет достаточно. (Правила BEGIN выполняются до того, как будет прочитан входной файл.)
действительно ли эти два утверждения действительно делают то, что вы хотите? что вы подразумеваете под двойным пространством? Если ваш исходный файл равен 100Kb, после запуска этого файла у вас есть 200kb-файл? Эти два утверждения не делают ничего, кроме изменения разрыва одной строки на две. – Kent
Вторая команда может быть записана как 'awk -v ORS =" \ n \ n "1 filename' точно так же. –