Issue
If I run the command cat file | grep pattern
, I get many lines of output. How do you concatenate all lines into one line, effectively replacing each "\n"
with "\" "
(end with "
followed by space)?
cat file | grep pattern | xargs sed s/\n/ /g
isn't working for me.
Solution
Use tr '\n' ' '
to translate all newline characters to spaces:
$ grep pattern file | tr '\n' ' '
Note: grep
reads files, cat
concatenates files. Don't cat file | grep
!
Edit:
tr
can only handle single character translations. You could use awk
to change the output record separator like:
$ grep pattern file | awk '{print}' ORS='" '
This would transform:
one
two
three
to:
one" two" three"
Answered By - Chris Seymour