Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
8 views

Text Processing - How Do I Add Newlines Between Lines Printed On The Command Line - Unix & Linux Stack Exchange

text processing - How do I add newlines between lines printed on the command line_ - Unix & Linux Stack Exchange

Uploaded by

Sathi Natarajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Text Processing - How Do I Add Newlines Between Lines Printed On The Command Line - Unix & Linux Stack Exchange

text processing - How do I add newlines between lines printed on the command line_ - Unix & Linux Stack Exchange

Uploaded by

Sathi Natarajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

11/22/24, 10:43 PM text processing - How do I add newlines between lines printed on the command line?

line? - Unix & Linux Stack Exch…

How do I add newlines between lines printed on the command


line?
Asked 14 years, 1 month ago Modified 4 years, 8 months ago Viewed 65k times

Mail logs are incredibly difficult to read. How could I output a blank line between each line printed
on the command line? For example, say I'm grep-ing the log. That way, multiple wrapped lines
41 aren't being confused.

text-processing command-line logs output text-formatting

Share Improve this question Follow edited Jan 24, 2018 at 23:23 asked Oct 14, 2010 at 21:00
Jeff Schaller ♦ xenoterracide
68k 35 119 257 60.2k 77 193 252

6 Answers Sorted by: Highest score (default)

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

67
G is not often used, but is nice for this purpose. sed maintains two buffer spaces: the “pattern
space” and the “hold space”. The lines processed by sed usually flow through the pattern space
as various commands operate on its contents ( s/// , p , etc.); the hold space starts out empty
and is only used by some commands.

The G command appends a newline and the contents of the hold space to the pattern space.
The above sed program never puts anything in the hold space, so G effectively appends just a
newline to every line that is processed.

Share Improve this answer Follow edited Aug 12, 2016 at 12:40 answered Oct 15, 2010 at 2:10
Waldemar Wosiński Chris Johnsen
163 1 5 20.4k 8 66 54

3 The -e isn't necessary. piping whatever | sed G ought to do the trick. – frabjous Oct 15, 2010 at 2:25

https://unix.stackexchange.com/questions/3127/how-do-i-add-newlines-between-lines-printed-on-the-command-line 1/3
11/22/24, 10:43 PM text processing - How do I add newlines between lines printed on the command line? - Unix & Linux Stack Exch…

@frabjous: Right, might as well leave off the -e since there we only need a single command argument.
– Chris Johnsen Oct 15, 2010 at 18:49

Can I give you like, +2? Nails it! – Christian Bongiorno Sep 28, 2017 at 17:40

but, it is only show in stdout, but not save it – biolinh Oct 18, 2017 at 12:20

Use awk to add an extra newline. This also lets you filter out things you don't want.

10 awk '{print $0,"\n"}' | less

Share Improve this answer Follow answered Oct 14, 2010 at 21:28
KeithB
3,219 21 13

Use sed and replace the whole line by itself plus one extra newline character:

7 grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"

Share Improve this answer Follow answered Oct 14, 2010 at 21:03
fschmitt
8,860 38 47

4 A slightly simpler sed substitution would be 's/$/\n/', although @Chris Johnsen's 'G' command is even
simpler. – camh Oct 15, 2010 at 5:05

Pipe | any output to:

4 sed G

Example:

ls | sed G

If you man sed you will see


G Append's a newline character followed by the contents of the hold space to the pattern space.

https://unix.stackexchange.com/questions/3127/how-do-i-add-newlines-between-lines-printed-on-the-command-line 2/3
11/22/24, 10:43 PM text processing - How do I add newlines between lines printed on the command line? - Unix & Linux Stack Exch…
Share Improve this answer Follow answered Mar 24, 2020 at 19:47
jasonleonhard
593 5 7

Is this what you are after?

grep SPAM mail.log | while read -r line; do echo; echo $line; done
3
Share Improve this answer Follow edited Oct 15, 2010 at 7:51 answered Oct 14, 2010 at 21:04
Nifle
549 2 6 17

You will probably want to use read -r to avoid treating backslash characters as special.
– Chris Johnsen Oct 15, 2010 at 1:57

If it's for more than just have look, I prefer to send them to a text file and open with a text editor
so you can set the lines to wrap or not and do searches easily... and delete the unwanted lines
0 and so on without having to type a lot of commands.

cat file.log > log.txt and gedit log.txt or a terminal editor like nano

Edit: or cp file.log log.txt wich is of course easier and faster... thanks to KeithB comment

Share Improve this answer Follow edited Oct 15, 2010 at 13:51 answered Oct 15, 2010 at 1:16
laurent
655 4 7

1 Why cat and not cp ? – KeithB Oct 15, 2010 at 13:21

sure cp would be easier and faster!... lol - I was reading the other answers dealing with grep and awk
so I wrote it the cat way but I'm correcting that, thanks – laurent Oct 15, 2010 at 13:49

https://unix.stackexchange.com/questions/3127/how-do-i-add-newlines-between-lines-printed-on-the-command-line 3/3

You might also like