tr command - how to replace the string "\n" with an actual newline (\n)
The Perl solution is similar to the sed solution from sampson-chen:
perl -pe 's/\\n/\n/g'
Examples:
Input file with literal \n (not newlines):
$ cat test1.txt
foo\nbar\n\nbaz
Replace literal all occurrences of \n
with actual newlines, print into STDOUT
:
$ perl -pe 's/\\n/\n/g' test1.txt
foo
bar
baz
Same, change the input file in-place,saving the backup into test1.txt.bak
:
$ perl -i.bak -pe 's/\\n/\n/g' test1.txt
The Perl one-liner uses these command line flags:-e
: Tells Perl to look for code in-line, instead of in a file.-p
: Loop over the input one line at a time, assigning it to $_
by default. Add print $_
after each loop iteration.-i.bak
: Edit input files in-place (overwrite the input file). Before overwriting, save a backup copy of the original file by appending to its name the extension .bak
.
SEE ALSO:perldoc perlrun
: how to execute the Perl interpreter: command line switchesperldoc perlre
: Perl regular expressions (regexes)
Here's how to do it with sed
:
sed 's/\\n/\n/g'
Example usage:
To replace all occurrences of \n
in a file in-place:
sed -i 's/\\n/\n/g' input_filename
To replace all occurrences of \n
through a pipe, and save into another file
cat file1 file2 file3 file4 | sed 's/\\n/\n/g' > output_file