[转载]sed命令替换换行符
来源:互联网 发布:运用大数据的案例分析 编辑:程序博客网 时间:2024/05/17 10:38
sed流编辑器是shell中处理文本内容的一大利器。sed命令从文本流中读取一行文本到模式空间中进行相应的命令、或脚本处理,因此在处理换行符时会有点特殊。
下面的命令可以很正确的执行:
1
echo
"a,b,c,d"
|
sed
's/,/\n/g'
1
echo
"a,b,c,d"
|
sed
's/,/\n/g'
|
sed
's/\n/,/g'
1
echo
"a,b,c,d"
|
sed
's/,/\n/g'
|
tr
-t
'\n'
','
下面是网上找到的一些用法,经实践效果是各不相同的,只有一种是完全可行的。
1
sed
':label;N;s/\n/:/;b label'
filename
1
sed
':label;N;s/\n/:/;t label'
filename
- :label; 这是一个标签,用来实现跳转处理,名字可以随便取(label),后面的b label就是跳转指令
- N; N是sed的一个处理命令,追加文本流中的下一行到模式空间进行合并处理,因此是换行符可见
- s/\n/:/; s是sed的替换命令,将换行符替换为冒号
- b label 或者 t label b / t 是sed的跳转命令,跳转到指定的标签处
标签跳转和N的追加命令实现了每一行的不间断放入模式处理空间,从而不会漏掉每一个换行符,而没有标签的话跳转的话,就只能每两行替换掉一个换行符,对比效果:
1
2
3
4
5
$
echo
"a,b,c,d"
|
sed
's/,/\n/g'
|
sed
':x;N;s/\n/,/;b x'
a,b,c,d
$
echo
"a,b,c,d"
|
sed
's/,/\n/g'
|
sed
'N;s/\n/,/'
a,b
c,d
1
2
3
4
5
$
echo
"a,b,c,d"
|
sed
's/,/\n/g'
|
sed
's/$/,/'
a,
b,
c,
d,
PS:sed中的n命令和~地址表示
1
sed
'8,80{n;n;n;d}'
filename
1
sed
'11~4d'
filename
该命令实现和上一个命令同样的功能,唯一的差别就是它直到文件结束,而无法指定结束行。
原文地址:http://my.oschina.net/shelllife/blog/118337
0 0
- [转载]sed命令替换换行符
- linux sed命令,如何替换换行符“\n”
- linux sed命令,如何替换换行符“\n”
- sed替换成换行符/回车符
- sed 中如何替换换行符
- 用sed命令如何能把一个匹配模式替换为换行符
- Linux Sed命令详解+如何替换换行符"\n"(很多面试问道)
- Linux Sed命令详解+如何替换换行符"\n"(很多面试问道)
- sed 替换命令
- 字符串替换命令 sed
- sed 之替换命令
- sed 命令批量替换
- 非交互式替换命令sed
- sed命令 替换文件内容
- sed 批量替换字串命令
- Sed 命令替换文件内容
- sed增加,删除,替换命令
- sed删掉换行符
- tengxun招聘
- halcon学习备忘三(数组的一些常用操作算子)
- 6.mysql 常用的计算时间的函数
- HT6025芯片串口打印printf功能配置
- 读<看透Spring MVC 源代码分析与实践>Tomcat笔记
- [转载]sed命令替换换行符
- 如何发布jar包到maven中央仓库
- photoshop制作安卓.9图片、setTag()方法、Fragment初识
- Spring整合Structs2 的web.xml 基本配置
- 欢迎使用CSDN-markdown编辑器
- 比JSON更快、更小--MessagePack
- redhat5在VM下无法连接网络--host-only类型
- html5学习
- 针对“Kettle学习------最简单的第二个Demo”的3个问题