码迷,mamicode.com
首页 > 其他好文 > 详细

sed常用用法技巧举例

时间:2015-08-30 17:48:44      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:shell

1.sed替换换行符及标签的使用

echo "a,b,c,d" |sed ‘s/,/\n/g‘|sed ‘s/\n/,/g‘

解析:以上命令实现不了替换换行符,这跟sed的行处理方式有关,sed读取一行时,会先把换行符去掉,处理完后再添加上,所以是无法使用上面的命令进行换行符替换的,必须使用sed中的其它命令来完成。上面的恢复可以使用tr命令:

echo "a,b,c,d" |sed ‘s/,/\n/g‘|tr -t ‘\n‘ ‘,‘

以下命令能实现替换文本中全部换行符:

sed ‘:label;N;s/\n/:/;b label‘ filename
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的跳转命令,跳转到指定的标签处

2.sed输出奇数行和偶数行

a.

sed -n ‘p;n‘ file    #奇数行
sed -n ‘n;p‘ file    #偶数行

解析:n表示读取下一个输入行,用下一个命令处理新的行而不是第一个命令。

b.

sed -n ‘1~2p‘ file    #奇数行
sed -n ‘2~2p‘ file    #偶数行

解析:第一个数字表示起始行,第二个数字表示步长。

参考资料:

http://my.oschina.net/shelllife/blog/118337

sed常用用法技巧举例

标签:shell

原文地址:http://wangyongbin.blog.51cto.com/8964308/1689734

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!