免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3898 | 回复: 10
打印 上一主题 下一主题

求一个shell脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-30 15:41 |只看该作者 |倒序浏览
文本文件,有两个要求:
1.去掉空行
2.文件末尾加入一个空字符0x00

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-10-30 15:46 |只看该作者
$ sed '/^$/d'
$ echo -e '\0' >> infile

论坛徽章:
0
3 [报告]
发表于 2010-10-30 15:53 |只看该作者
Thank you

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2010-10-31 18:35 |只看该作者

  1. filename=myfile
  2. awk '!/^[ \t]*$/{print >'$filename'}END{printf("%c",0)>'$filename'}' $filename
复制代码

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
5 [报告]
发表于 2010-10-31 18:54 |只看该作者
一条命令

sed '/^$/d; $ s/$/\x00/' infile

论坛徽章:
0
6 [报告]
发表于 2010-10-31 20:57 |只看该作者
本帖最后由 slow_hand 于 2010-10-31 21:55 编辑
$ sed '/^$/d'
$ echo -e '\0' >> infile
L_kernel 发表于 2010-10-30 15:46



   第一行是需要一个文件名参数吧?sed '/^$/d' infile
   打印到控制台或者重定向到新文件去掉了空行,但是源文件没有去掉。

echo -e '\o' >> infile
用vim 十六进制选项:%!xxd看发现空字符'\0'加到0a的前面了,即000a.
如何加到最后?  成为0a00

论坛徽章:
0
7 [报告]
发表于 2010-10-31 20:58 |只看该作者
cjaizss 发表于 2010-10-31 18:35



    这个也是shell脚本吧?但是运行时候有错误啊

论坛徽章:
0
8 [报告]
发表于 2010-10-31 20:59 |只看该作者
一条命令

sed '/^$/d; $ s/$/\x00/' infile
rdcwayx 发表于 2010-10-31 18:54



    运行之后,空行还是存在。。。。

论坛徽章:
0
9 [报告]
发表于 2010-10-31 20:59 |只看该作者

论坛徽章:
0
10 [报告]
发表于 2010-10-31 21:55 |只看该作者
综合前面人的智慧  问题解决了
下面是两行脚本代码,这里我用的是x55,你只需要把它改为x00即可。 脚本文件的名字叫做inin吧
  1 /^$/d
  2 $ s/$/\x55/

[xiaoqing@xiaoqing-desktop shell]$ sed -f inin qing > xinqing
文件qing是你想改的文件,由于sed是流编辑器,它的一个特性是不改变原文件,所以应该把其输出重定向,我用的是xinqing。之后只要简单的使用命令mv   xinqing  qing  即可  (不过我还是建议你使用之前先给原文件备份,以免错误发生。)

我今天通过帖子也学习到了很多东西啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP