linux sed命令如何替换换行符n
    实现方法
        第一种方法使用test跳转命令实现替换换行符
        branch和test区别
        第二种方法使用branch跳转命令实现替换换行符

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

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

sed "s/\n//g" file

发现,没起到任何效果。

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

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

这个基础内容,可以百度,也可以参考下文连接:

Sed and awk 笔记之 sed 篇:高级命令(一)
http://kodango.com/sed-and-awk-notes-part-4
Sed and awk 笔记之 sed 篇:高级命令(二)
http://kodango.com/sed-and-awk-notes-part-5

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

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
qilei@AFAAW-704030720:~$

实现方法
第一种方法:使用test跳转命令,实现替换换行符

sed ":a;N;s/\n//g;ta" a.txt

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

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

branch循环到文本结束。比如sed ":a;N;s/\n//g;ba" a.txt,转换成自然语言的描述,就是

while(1) {
 N;
 s/\n//g;
}

test可以根据替换命令的完成是否成功,决定是否跳转。比如sed ":a;N;s/\n//g;ta" a.txt,转换成自然语言的描述,就是

while(state == 1) { #注释:默认state就当是1好了。
 N;
 s/\n//g;#注释:成功,返回state为1;否则返回state=0。此state用于跳转判断。
}
else {
 last; #注释:即退出循环语句。
}

第二种方法:使用branch跳转命令,实现替换换行符

qilei@AFAAW-704030720:~$ sed ":a;N;s/\n//g;$!ba" a.txt
a11111a22222a33333
qilei@AFAAW-704030720:~$

增加$!ba语句,$的意思是最后一行,不跳转到标记a处,即退出命令循环。

同理,也可以用下述命令。

qilei@AFAAW-704030720:~$ sed ":a;$!N;s/\n//g;ba" a.txt
a11111a22222a33333
qilei@AFAAW-704030720:~$
---------------------
作者:亓磊
来源:CSDN
原文:https://blog.csdn.net/u011729865/article/details/71773840
版权声明:本文为博主原创文章,转载请附上博文链接!

linux sed命令,如何替换换行符“\n”相关推荐

  1. sed 中如何替换换行符

    使用如下解决方案: sed ':a;N;$!ba;s/\n/ /g' 这将在一个循环里读取整个文件,然后将换行符替换成一个空格. 说明: 通过 :a创建一个标记 通过N追加当前行和下一行到模式区域 如 ...

  2. linux中excel的换行符,Excel skill: 如何替换换行符,以及如何把一格转换成多行/多列...

    增加一辅助列,用替换函数替换掉软回车. 比如A列是数据,从A1开始,则插入B列,B1输入公式 =REPLACE(A1,FIND(CHAR(10),A1),1,"") 再用填充柄向下 ...

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

    linux sed命令,如何替换换行符"\n" 在一次sed使用中,执行命令: sed "s/\n//g" file 1 发现,没起到任何效果. 后来,经查se ...

  4. linux sed替换大小写,sed命令介绍 及实例(替换换行符及大小写替换)

    一.sed命令介绍 Table of Contents 1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 1. Sed简介 sed是一种在线编辑器,它 ...

  5. 请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net...

    请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net

  6. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  7. linux sed p变量,Linux sed 命令详解系列教程之各种问题解决

    本文目录: 1 sed中使用变量和变量替换的问题 2 反向引用失效问题 3 "-i"选项的文件保存问题 4 贪婪匹配问题 5 sed命令"a"和"N& ...

  8. Linux sed命令高级用法精讲

    <Linux sed用法详解>一节给大家介绍了如何用 sed 命令的基本功能处理文本中的数据,所涵盖的知识点,可以满足日常大多数文本编辑需求.本节将介绍 sed 提供的一些高级功能,这些功 ...

  9. linux系统sed语法,22. Linux sed命令

    Linux sed命令是利用script来处理文本文件. sed可依照script的指令,来处理.编辑文本文件. Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed ...

最新文章

  1. 一文轻松了解Graph Neural Networks
  2. 今天看到的关于深度学习的一篇文章,可以好好学习下
  3. Gps高程拟合matlab代码,几种GPS高程拟合方法分析与比较.doc
  4. 024_输入输出字符集
  5. AC自动机-洛谷3121 [USACO15FEB]审查(黄金)Censoring (Gold)
  6. 面试,MySQL 搞透这 20 道就稳了
  7. 中如何调取api_API(接口)是什么
  8. 建设研发运营一体化平台
  9. [ Javascript ] JavaScript中的定时器(Timer) 是怎样工作的!
  10. 如何将数据库中的记录表导入到VC中
  11. [Mac OSX技巧] 通过命令行开启安全性与隐私中的任何来源
  12. Ubuntu16.04.1 安装Redis-Cluster
  13. 服了!程序员面试现场80行代码写俄罗斯方块,最终拿到15K月薪!
  14. Swoole 结合TP5创建http服务
  15. 【数据结构】严蔚敏版--学习复习笔记
  16. 树莓派安装vsftp过程中遇到的坑
  17. 抖音壁纸小程序怎么做?教你开通和对接流量主拥有自己的小程序
  18. 基因重组-冲刺日志(第一天)
  19. Spring Boot 2.1.2配置文件参考配置项官方谷歌翻译版本
  20. java配置 path_java中path的配置

热门文章

  1. 设备维护保养管理系统
  2. 《公司的力量》第三集:猎富时代 解说词
  3. 一图看懂6G应用及用例研究
  4. 有趣的算法-----求长方形面积
  5. 中国不是小国,核心技术自己不掌握不行---胡伟武
  6. python解析XML,提取标签内容
  7. docker查看java资源_JDK11设置Docker容器资源感知
  8. 360壁纸的任务栏广告图标 垃圾
  9. 总会计师-财务总监-CFO,财务-管理-ERP
  10. 防止电脑锁屏脚本power shell版