linux sed命令,如何替换换行符“\n”
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”相关推荐
- sed 中如何替换换行符
使用如下解决方案: sed ':a;N;$!ba;s/\n/ /g' 这将在一个循环里读取整个文件,然后将换行符替换成一个空格. 说明: 通过 :a创建一个标记 通过N追加当前行和下一行到模式区域 如 ...
- linux中excel的换行符,Excel skill: 如何替换换行符,以及如何把一格转换成多行/多列...
增加一辅助列,用替换函数替换掉软回车. 比如A列是数据,从A1开始,则插入B列,B1输入公式 =REPLACE(A1,FIND(CHAR(10),A1),1,"") 再用填充柄向下 ...
- linux中sed如何替换换行符,linux sed命令,如何替换换行符“\n”
linux sed命令,如何替换换行符"\n" 在一次sed使用中,执行命令: sed "s/\n//g" file 1 发现,没起到任何效果. 后来,经查se ...
- linux sed替换大小写,sed命令介绍 及实例(替换换行符及大小写替换)
一.sed命令介绍 Table of Contents 1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 1. Sed简介 sed是一种在线编辑器,它 ...
- 请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net...
请教大家,如何使用sed命令,替换文件指定行的内容呢?-Linux系统管理-ChinaUnix.net
- linux中替换命令详解,linux中sed命令字符串替换的用法详解
Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...
- linux sed p变量,Linux sed 命令详解系列教程之各种问题解决
本文目录: 1 sed中使用变量和变量替换的问题 2 反向引用失效问题 3 "-i"选项的文件保存问题 4 贪婪匹配问题 5 sed命令"a"和"N& ...
- Linux sed命令高级用法精讲
<Linux sed用法详解>一节给大家介绍了如何用 sed 命令的基本功能处理文本中的数据,所涵盖的知识点,可以满足日常大多数文本编辑需求.本节将介绍 sed 提供的一些高级功能,这些功 ...
- linux系统sed语法,22. Linux sed命令
Linux sed命令是利用script来处理文本文件. sed可依照script的指令,来处理.编辑文本文件. Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. sed ...
最新文章
- 一文轻松了解Graph Neural Networks
- 今天看到的关于深度学习的一篇文章,可以好好学习下
- Gps高程拟合matlab代码,几种GPS高程拟合方法分析与比较.doc
- 024_输入输出字符集
- AC自动机-洛谷3121 [USACO15FEB]审查(黄金)Censoring (Gold)
- 面试,MySQL 搞透这 20 道就稳了
- 中如何调取api_API(接口)是什么
- 建设研发运营一体化平台
- [ Javascript ] JavaScript中的定时器(Timer) 是怎样工作的!
- 如何将数据库中的记录表导入到VC中
- [Mac OSX技巧] 通过命令行开启安全性与隐私中的任何来源
- Ubuntu16.04.1 安装Redis-Cluster
- 服了!程序员面试现场80行代码写俄罗斯方块,最终拿到15K月薪!
- Swoole 结合TP5创建http服务
- 【数据结构】严蔚敏版--学习复习笔记
- 树莓派安装vsftp过程中遇到的坑
- 抖音壁纸小程序怎么做?教你开通和对接流量主拥有自己的小程序
- 基因重组-冲刺日志(第一天)
- Spring Boot 2.1.2配置文件参考配置项官方谷歌翻译版本
- java配置 path_java中path的配置