分页: 1 / 1

插入空行

发表于 : 2011-09-09 17:58
dreamcast_sh
文本每隔20行插入3个空行怎么做,貌似sed可以,求解。

Re: 插入空行

发表于 : 2011-09-09 18:10
lilydjwg

代码: 全选

awk '{
  print $0;
  if(NR % 20 == 0){
    print "";
    print "";
    print "";
  }
}'

Re: 插入空行

发表于 : 2011-09-09 18:23
我就是我2
http://sed.sourceforge.net/sed1line_zh-CN.html
SED单行脚本快速参考(Unix 流编辑器

Re: 插入空行

发表于 : 2011-09-09 20:17
我就是我2

代码: 全选

cat .zshrc -n | sed  '0~20G;0~20G;0~20G' | cat -n

Re: 插入空行

发表于 : 2011-09-09 20:56
sk1418
lilydjwg 写了:

代码: 全选

awk '{
  print $0;
  if(NR % 20 == 0){
    print "";
    print "";
    print "";
  }
}'

我多个手,可以简化一小下:

代码: 全选

 awk '1;!(NR%20){print "\n\n"}' file
我就是我2 写了:

代码: 全选

cat .zshrc -n | sed  '0~20G;0~20G;0~20G' | cat -n
再多个手,sed可以用{}的:

代码: 全选

 sed '0~20{G;G;G;}' file
另外避免不必要地使用cat (我指的你的第一个cat) 参阅: http://partmaps.org/era/unix/award.html#cat

Re: 插入空行

发表于 : 2011-09-09 21:40
我就是我2
:em20
cat .zshrc -n | sed '0~20G;0~20G;0~20G' | cat -n
我要看行号来检验结果,对这些语法不熟悉

Re: 插入空行

发表于 : 2011-09-09 21:45
sk1418
我就是我2 写了::em20
cat .zshrc -n | sed '0~20G;0~20G;0~20G' | cat -n
我要看行号来检验结果,对这些语法不熟悉
哦,我明白你意思了。 你是比较前后的行号。
可你.zshrc里也有很多空行吧?(我的就是)较起来会不明显,我是用seq 50 测试的。

Re: 插入空行

发表于 : 2011-09-09 23:55
lilydjwg
sk1418 写了:
lilydjwg 写了:

代码: 全选

awk '{
  print $0;
  if(NR % 20 == 0){
    print "";
    print "";
    print "";
  }
}'

我多个手,可以简化一小下:

代码: 全选

 awk '1;!(NR%20){print "\n\n"}' file
我就是我2 写了:

代码: 全选

cat .zshrc -n | sed  '0~20G;0~20G;0~20G' | cat -n
再多个手,sed可以用{}的:

代码: 全选

 sed '0~20{G;G;G;}' file
另外避免不必要地使用cat (我指的你的第一个cat) 参阅: http://partmaps.org/era/unix/award.html#cat
学习了!不过 sed 版的没看懂。。。

Re: 插入空行

发表于 : 2011-09-10 0:08
我就是我2
学习了!不过 sed 版的没看懂。。。

代码: 全选

sed -n '0~2p' #输出偶数行 0+2+2+2...2n
sed -n '1~2p' #输出偶数行 1+2+2+2...2n+1
学过等差数列吧。

Re: 插入空行

发表于 : 2011-09-10 8:45
dreamcast_sh
大大们都好强,看来sed、awk都是必修课吖,总是会用到 :em03

Re: 插入空行

发表于 : 2011-09-10 11:31
我就是我2
:em70 ee说,perl好

Re: 插入空行

发表于 : 2011-09-13 16:57
lilydjwg
我就是我2 写了:
学习了!不过 sed 版的没看懂。。。

代码: 全选

sed -n '0~2p' #输出偶数行 0+2+2+2...2n
sed -n '1~2p' #输出偶数行 1+2+2+2...2n+1
学过等差数列吧。
明白了。回复完我就去 man 过 sed 了~