返回列表 发帖
感觉用sed有点难写样。

TOP

谢谢,很好。学习了。看来还是gawk更高一层,支持变量。

TOP

本帖最后由 yiwuyun 于 2015-2-11 16:08 编辑

回复 11# CrLf

经过思考,借签你的想法。可以用纯sed来实现,但需要多次使用sed,前面的sed本质上是构建一个sed.script以便最后一个sed使用。不多说,上代码,欢迎修改,指正。共同进步
  1. sed -n "=" a.txt|sed -n "1~6p;$p"|sed "N;s/^\(.*\)\n\1$/\1\n/;P;D;"|sed "/^$/d"|sed "$q;1!p;"|sed "N;s/^\(.*\)\n\(.*\)$/\1,\2w/"|sed "="|sed "N;s/\(.*\)\n\(.*\)$/\2\1.txt/"|sed -nf - a.txt
复制代码
这是每六行的代码,如果要改成其他数字,只需修改第一个sed的1~6为其他数字即可。有一点不足的是,没有实现第二个数字的减1,以至于,有一行重复。这个要修改应该也行,只是代码就更长了。
1

评分人数

TOP

很好, sed造诣够深的,佩服,学习了。对最后一行的处理可能还需要冗余一下。要不然最后一行可能丢失。
  1. sed -n "$=;$q;0~6=;1~6=" a.txt|sed -nr "${h;G;s/\n(.*)/,\1w/;p};N;s/\n(.*)/,\1w/;p"|sed -n "p;="|sed -r "N;s/\n(.*)$/\1.txt/"|sed -nf - a.txt
复制代码
1

评分人数

    • CrLf: 感谢指正!技术 + 1

TOP

返回列表