插入空行

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
dreamcast_sh
帖子: 480
注册时间: 2009-06-14 22:16

插入空行

#1

帖子 dreamcast_sh » 2011-09-09 17:58

文本每隔20行插入3个空行怎么做,貌似sed可以,求解。
想玩生化了。。。
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 插入空行

#2

帖子 lilydjwg » 2011-09-09 18:10

代码: 全选

awk '{
  print $0;
  if(NR % 20 == 0){
    print "";
    print "";
    print "";
  }
}'
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

Re: 插入空行

#3

帖子 我就是我2 » 2011-09-09 18:23

http://sed.sourceforge.net/sed1line_zh-CN.html
SED单行脚本快速参考(Unix 流编辑器
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

Re: 插入空行

#4

帖子 我就是我2 » 2011-09-09 20:17

代码: 全选

cat .zshrc -n | sed  '0~20G;0~20G;0~20G' | cat -n
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
联系:

Re: 插入空行

#5

帖子 sk1418 » 2011-09-09 20:56

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
---
regards,

Kent
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

Re: 插入空行

#6

帖子 我就是我2 » 2011-09-09 21:40

:em20
cat .zshrc -n | sed '0~20G;0~20G;0~20G' | cat -n
我要看行号来检验结果,对这些语法不熟悉
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
联系:

Re: 插入空行

#7

帖子 sk1418 » 2011-09-09 21:45

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

Kent
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 插入空行

#8

帖子 lilydjwg » 2011-09-09 23:55

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 版的没看懂。。。
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

Re: 插入空行

#9

帖子 我就是我2 » 2011-09-10 0:08

学习了!不过 sed 版的没看懂。。。

代码: 全选

sed -n '0~2p' #输出偶数行 0+2+2+2...2n
sed -n '1~2p' #输出偶数行 1+2+2+2...2n+1
学过等差数列吧。
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
头像
dreamcast_sh
帖子: 480
注册时间: 2009-06-14 22:16

Re: 插入空行

#10

帖子 dreamcast_sh » 2011-09-10 8:45

大大们都好强,看来sed、awk都是必修课吖,总是会用到 :em03
想玩生化了。。。
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

Re: 插入空行

#11

帖子 我就是我2 » 2011-09-10 11:31

:em70 ee说,perl好
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 插入空行

#12

帖子 lilydjwg » 2011-09-13 16:57

我就是我2 写了:
学习了!不过 sed 版的没看懂。。。

代码: 全选

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