How do I replace newline (\n) with sed under UNIX / Linux operating systems?
You can use the following sed command:
sed '{:q;N;s/\n//g;t q}' /path/to/data.txt
You can replace newline (\n) with * character or word ‘FOO’:
sed '{:q;N;s/\n/*/g;t q}' /path/to/data.txt
OR
sed '{:q;N;s/\n/FOO/g;t q}' /path/to/data.txt
OR replace it with tab (\t):
sed '{:q;N;s/\n/\t/g;t q}' /path/to/data.txt
To update file use -i option:
sed -i '{:q;N;s/\n/\t/g;t q}' /path/to/data.txt
🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.
🐧 4 comments so far... add one ↓
🐧 4 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
thanks..
very nice example
It doesnt work for me :(
$ sed ‘{:q;N;s/\n/\t/g;t q}’ /fi/fa/foo.fu
sed: 1: “{:q;N;s/\n/\t/g;t q}”: unexpected EOF (pending }’s)
Doesn’t work for me in Cygwin, if there are 17 lines the first line has 16 of the replacement, line 2 will have 15 etc until the last line does not have the replacement.
Simpler way to replace the end of the line:
sed ‘s/$/FOO/’ /path/to/data.txt