linux sed命令中怎么替换换行符“\n”,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

linux sed命令,如何替换换行符“\n”

在一次sed使用中,执行命令:

sed "s/\n//g" file

发现,没起到任何效果。

后来,经查sed官方用户手册,才得知,sed是按行处理文本数据的,每次处理一行数据后,都会在行尾自动添加trailing newline,其实就是行的分隔符即换行符。

如果非要使用sed命令,实现替换file文本内容的换行符为空的话,那么就要了解sed的分支条件命令,以及了解sed的pattern space模式空间和hold space保持空间。即,连续两行执行一次sed命令,这样就可以把前一行的\n替换完成。

最终程序和执行结果如下例所示:

qilei@AFAAW-704030720:~$ cat a.txt
a11111
a22222
a33333
qilei@AFAAW-704030720:~$ sed "s/\n//g" a.txt
a11111
a22222
a33333
qilei@AFAAW-704030720:~$ sed ":a;N;s/\n//g;ta" a.txt
a11111a22222a33333

N是把下一行加入到当前的hold space模式空间里,使之进行后续处理,最后sed会默认打印hold space模式空间里的内容。也就是说,sed是可以处理多行数据的。

:a和ta是配套使用,实现跳转功能。t是test测试的意思。

另外,还有:a和ba的配套使用方式,也可以实现跳转功能。b是branch分支的意思。

什么是Linux系统

Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。