您的位置:首页 > 其它

sed命令简单使用-实现行的两两互换

2012-02-10 14:57 507 查看
方法一:

 [work@ ]$ seq -f "%05g" 6 | sed -n 'N;s/\(.*\)\n\(.*\)/\2\n\1/;p'

00002

00001

00004

00003

00006

00005

 

'N;s/\(.*\)\n\(.*\)/\2\n\1/;p':首先,每轮执行该命令,都会读入一行,比如第1行(本例中奇数行都是此时读的),然后执行命令N(本例中,偶数行都是此时读的),读入下一行,第一次执行N命令读入的是第2行,然后执行s命令,将\n前面的内容和后面的内容互换,最后执行命令p,进行显示。

方法二:

[work@db-sf-antitp02.db01.baidu.com yangkai]$ seq -f "%05g" 6 | sed -n 'h;n;G;p'                           

00002

00001

00004

00003

00006

00005

 

sed -n 'h;n;G;p' :首先,读入一行到pattern space中,比如第1行(本例中奇数行都是此时读的),然后执行命令h,将该行放入hold space中,然后执行命令n(本例中,偶数行都是此时读的),读入新的一行--第2行,将pattern space中的第一行的内容覆盖;然后执行命令G,读取hold space中的内容--第1行,放在当前pattern space的内容之后,即实现了第1、2行的互换,然后执行命令p,显示pattern space中的内容。该轮执行完毕后,会清空pattern
space,然后读入第3行,......,依次下去,直到处理完毕。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: