Как можно добавить «двойной межстрочный интервал» к любому выводу?

Как можно добавить «двойной межстрочный интервал» к любому выводу?

Я хотел бы взять вывод команды bash (в данном случае grep) и вставить пустую строку через строку:

not
like
this ...

but

like

this!

Как это сделать в bash?

решение1

Есть много способов сделать это для текстовых файлов. Самый простой, наверное, это

$ sed G filename

решение2

Использование prиз coreutils:

$ grep '' file | pr -Td
not

like

this ...

(обратите внимание, что этоделаетдвойной интервал в последней строке - в отличие, скажем, sed '$!G'от ). Из man pr:

   -d, --double-space
          double space the output

   -T, --omit-pagination
          omit page headers and trailers, eliminate any pagination by form
          feeds set in input files

решение3

Начнем с файла вроде:

$ cat >file
not
like
this ...

sed будет работать:

$ sed 's/$/\n/' file
not

like

this ...

Так будет awk:

$ awk 1 ORS='\n\n' file
not

like

this ...

1— это зашифрованное сокращение awk для print-the-line, ORS='\n\n'сообщающее awk о необходимости разделять выходные строки не одним, а двумя символами новой строки.

Более

Более короткая команда sed, как предложеностальной драйвер, является:

sed '$!G' file

Команда Gдобавляет новую строку иудерживайте пространстводо концапространство шаблона. Поскольку по умолчанию пространство удержания пусто, это приводит к добавлению дополнительной новой строки в конце каждой строки. Префикс $!сообщает sed делать это во всех строкахкромепоследний.

решение4

Test
10
20
30

Output
perl -pe "s/$/\n/" test 
10

20

30

Связанный контент