Почтовые журналы невероятно трудно читать. Как я могу вывести пустую строку между каждой строкой, напечатанной в командной строке? Например, скажите, что я выполняю поиск в журнале. Таким образом, несколько обернутых строк не путаются.
Почтовые журналы невероятно трудно читать. Как я могу вывести пустую строку между каждой строкой, напечатанной в командной строке? Например, скажите, что я выполняю поиск в журнале. Таким образом, несколько обернутых строк не путаются.
Ответы:
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
должен сделать свое дело.