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行,......,依次下去,直到处理完毕。
[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行,......,依次下去,直到处理完毕。
相关文章推荐
- sed命令简单使用-截取第n个关键字和倒数第m个关键字之前的内容
- 使用hadoop命令rcc生成Record 一个简单的方法来实现自己的定义writable对象
- sed命令简单使用-显示
- 使用EF6和MVC5实现一个简单的选课系统--EF6的弹性链接和命令拦截(4/12)
- grep、sed和awk命令的简单使用
- 使用linux-c编程实现简单的ls命令
- ES6使用let命令更简单的实现块级作用域实例分析
- 使用pipe实现一个简单的类似tee命令的功能
- sed 命令简单使用方法
- 最近才知道的一款软件,可以实现在windows下使用linux下的命令,甚至可以使用简单的shell
- Redis:使用SET命令实现简单的高可用(HA)
- sed命令简单使用-D命令-结束本轮循环
- 使用命令模式实现简单的支持撤销的计算器
- sed命令简单使用-不写D,那么默认执行d
- 使用Python实现简单Linux之find命令
- grep、sed和awk命令的简单使用
- 使用linux-c编程实现简单的ls命令
- sed命令简单使用
- sed命令简单使用-pattern space与hold space
- 使用Ruby简单实现的tail命令,支持动态输出