免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: yangbosos
打印 上一主题 下一主题

在SHELL中怎样把多个连续的空行变成单个空行呢 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2007-09-26 15:31 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
22 [报告]
发表于 2007-09-26 15:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
23 [报告]
发表于 2007-09-26 15:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
24 [报告]
发表于 2007-09-26 16:55 |只看该作者

回复 #23 用的是我的 的帖子

sed '/^$/d;G' file          # this allows 0 blanks at top, 1 at EOF
sed '/./,/^$/!d' file       # this allows 0 blanks at top, 1 at EOF
sed '/^$/N;/\n$/D' file     # this allows 1 blank at top, 0 at EOF

论坛徽章:
0
25 [报告]
发表于 2007-09-27 09:43 |只看该作者
Fedora 7:
cat -s
uniq

论坛徽章:
0
26 [报告]
发表于 2007-09-27 11:50 |只看该作者
原帖由 ivhb 于 2007-9-25 13:52 发表

估计你是aix,或者hp。可以试试看 cat -r
sco和solaris好像没有-r选项


cat -S

论坛徽章:
0
27 [报告]
发表于 2007-09-27 11:58 |只看该作者
sed '/^$/d;G' file         

把空格删除后,会在每行后加上一个空格,即使之前并没有空行的,此时也会加上,所以这个不符合LZ要求

论坛徽章:
0
28 [报告]
发表于 2007-09-28 01:51 |只看该作者
原帖由 joan8363 于 2007-9-27 11:58 发表
sed '/^$/d;G' file         

把空格删除后,会在每行后加上一个空格,即使之前并没有空行的,此时也会加上,所以这个不符合LZ要求

谁说的会加上一个空格?
需要改进的只是对空行的理解和判断。严格说,/^$/才是空行,不过通常将仅有空格和TAB也认为是空行,那么,
sed '/^[\t ]*$/d;G/'

最后它会加一空行,确实是不足。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP