Как добавить новые строки между строками, напечатанными в командной строке?

Журналы почты невероятно трудно читать. Как я могу выводить пустую строку между каждой строкой, напечатанной в командной строке? Например, скажем, я использую журнал. Таким образом, несколько завернутых строк не путаются.

25 голосов | спросил xenoterracide 15 +04002010-10-15T01:00:05+04:00312010bEurope/MoscowFri, 15 Oct 2010 01:00:05 +0400 2010, 01:00:05

5 ответов


43
sed G 
# option: g G    Copy/append hold space to pattern space.

G не часто используется, но подходит для этой цели. sed поддерживает два пространства буфера: «пространство шаблонов» и «пространство удержания». Линии, обработанные sed , обычно проходят через пространство шаблонов, поскольку различные команды работают над его содержимым (s///, ---- +: = 3 =: + ---- и т. д.); пространство удержания начинается пустым и используется только некоторыми командами.

Команда p добавляет новую строку и содержимое пространства удержания в пространство шаблонов. Вышеупомянутая программа sed никогда не помещает ничего в пространство удержания, поэтому G эффективно добавляет только новую строку для каждой строки который обрабатывается.

ответил Chris Johnsen 15 +04002010-10-15T06:10:53+04:00312010bEurope/MoscowFri, 15 Oct 2010 06:10:53 +0400 2010, 06:10:53
8

Используйте awk для добавления дополнительной строки новой строки. Это также позволяет отфильтровывать то, что вам не нужно.

awk '{print $0,"\n"}' | less
ответил KeithB 15 +04002010-10-15T01:28:06+04:00312010bEurope/MoscowFri, 15 Oct 2010 01:28:06 +0400 2010, 01:28:06
4

Использовать sed и полностью заменить всю строку плюс один дополнительный символ новой строки:

grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"
ответил fschmitt 15 +04002010-10-15T01:03:43+04:00312010bEurope/MoscowFri, 15 Oct 2010 01:03:43 +0400 2010, 01:03:43
3

Это то, что вам нужно?

grep SPAM mail.log | while read -r line; do echo; echo $line; done

ответил Nifle 15 +04002010-10-15T01:04:09+04:00312010bEurope/MoscowFri, 15 Oct 2010 01:04:09 +0400 2010, 01:04:09
0

Если это больше, чем просто выглядеть, я предпочитаю отправлять их в текстовый файл и открывать текстовым редактором, чтобы вы могли установить строки для обертывания или нет и легко выполнять поиск ... и удалять ненужные строки и т. д., не вводя много команд.

cat file.log > log.txt и gedit log.txt или редактор терминалов, например nano

Изменить: или cp file.log log.txt, который, конечно, будет проще и быстрее ... благодаря комментарию KeithB

ответил laurent 15 +04002010-10-15T05:16:57+04:00312010bEurope/MoscowFri, 15 Oct 2010 05:16:57 +0400 2010, 05:16:57

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132