Почтовые журналы невероятно трудно читать. Как я могу вывести пустую строку между каждой строкой, напечатанной в командной строке? Например, скажите, что я выполняю поиск в журнале. Таким образом, несколько обернутых строк не путаются.
Почтовые журналы невероятно трудно читать. Как я могу вывести пустую строку между каждой строкой, напечатанной в командной строке? Например, скажите, что я выполняю поиск в журнале. Таким образом, несколько обернутых строк не путаются.
Ответы:
sed G
# option: g G Copy/append hold space to pattern space.
Gне часто используется, но хорош для этой цели. sed поддерживает два буферных пространства: «пространство шаблона» и «пространство хранения». Строки, обрабатываемые sed, обычно проходят через пространство шаблона, поскольку различные команды работают с его содержимым ( s///, pи т. Д.); пространство удержания начинается пустым и используется только некоторыми командами.
Команда Gдобавляет новую строку и содержимое области удержания в пространство образца. Вышеприведенная программа sed никогда ничего не помещает в пространство удержания, поэтому Gэффективно добавляет просто новую строку к каждой обрабатываемой строке.
-eпоскольку нам нужен только один аргумент команды.
Это то, что вы после?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
read -rчтобы не обрабатывать символы обратной косой черты как особые.
Если это больше, чем просто просмотр, я предпочитаю отправлять их в текстовый файл и открывать в текстовом редакторе, чтобы вы могли задать перенос строк или нет и выполнять поиск легко ... и удалять ненужные строки и так далее без приходится вводить много команд.
cat file.log > log.txt
и gedit log.txtили редактор терминала, как нано
Изменить: или cp file.log log.txtчто, конечно, проще и быстрее ... благодаря комментарию KeithB
catи нет cp?
cp, будет проще и быстрее! ... смеется - я читал другие ответы, связанные с, grepи awkпоэтому я написал это catтак, но я исправляю это, спасибо
whatever | sed Gдолжен сделать свое дело.