这是big5码喔
中国大陆地区看起来应该是乱码= =
作者: CUer 时间: 2011-7-31 12:02
回复 7# strong12345
我这里测试没有问题。
你用的哪个版本的sed啊?
作者: strong12345 时间: 2011-7-31 12:05
最近想学习一些第3方的文本处理软件用法
感觉功能很强大
但不知道学什么好
gawk sed 还是什么比较好 @@
作者: strong12345 时间: 2011-7-31 12:08
本帖最后由 strong12345 于 2011-7-31 12:15 编辑
回复 8# CUer
我不知道怎么看他的版本耶= = (/? 无效...??)
我只知道他的md5是81cb44f6676039ed327f98e1e6966635
我下载新的sed看看好了
我比较过了.. 4.14 单文件版
作者: CUer 时间: 2011-7-31 13:48
回复 10# strong12345 复制代码
作者: tmplinshi 时间: 2011-7-31 14:44
本帖最后由 tmplinshi 于 2011-7-31 14:50 编辑
回复 10# strong12345
强烈建议使用这个版本:
GNU sed v4.0.7 单文件版(使用 -i 参数不生成备份文件)
http://bathome.net/thread-13353-1-1.html
与“4.14 单文件版”相比,不但
- 体积更小
- 速度更快
- 而且使用 -i 参数不加扩展名的时候,不会生成备份文件。
-i[扩展名], --in-place[=扩展名]
直接修改文件(如果指定扩展名就备份文件)
很多版本,即使没有指定扩展名,仍然会备份文件。“GNU sed v4.0.7 单文件版”没有这个问题。
作者: strong12345 时间: 2011-7-31 14:54
请问是我的作法有误吗@@
我一般浆sed.exe放在 system32\ 下,方便修改
可是我在DOS视窗下,输入sed --version ,或是其他sed指令,都是出现一个不支援中文的dos窗口 ??
附上我测试的档案及图片...
附件過大,因此傳到網路空間(包含sed.exe 4.14)
测试档案
作者: tmplinshi 时间: 2011-7-31 14:56
回复 13# strong12345
是版本问题。
作者: tmplinshi 时间: 2011-7-31 15:05
回复 CUer
初步尝试似乎不行 =.=
是我的文本里有中文的原因吗?
strong12345 发表于 2011-7-31 11:25
加 -i 参数:- sed -i "/^[ \t]*$/d" a.txt
复制代码
作者: CUer 时间: 2011-7-31 15:45
回复 13# strong12345
试试版主提供的4.0.7
作者: strong12345 时间: 2011-7-31 16:10
本帖最后由 strong12345 于 2011-7-31 16:18 编辑
是的,我用4.07成功了,感谢版主
可是,替换后的换行 变成仅是 \n ,不是一般notepad 认识的 \r\n
另外,最末行的空行,也无法替换,请问此点可改善吗 @@
另外想请问 gawk代码,个人目前比较想学gawk...
谢谢
另外我刚刚查了一下,sed 出4.2.1 单文件版本了
网站 http://gnuwin32.sourceforge.net/packages/sed.htm
似乎也没有单文件 =.= 还是要dll档
作者: CUer 时间: 2011-7-31 16:16
回复 17# strong12345
4.2.1在使用-i选项的时候会自动生成一个备份文件,感觉不爽。
作者: CUer 时间: 2011-7-31 16:22
回复 17# strong12345 - sed "/^[ \t]*$/d" a.txt | more >b.txt
复制代码
这样应该不会有\n的问题了吧
作者: tmplinshi 时间: 2011-7-31 16:24
是的,我用4.07成功了,感谢版主
可是,替换后的换行 变成仅是 \n ,不是一般notepad 认识的 \r\n
另外, ...
strong12345 发表于 2011-7-31 16:10
果然 - -|||,这个应该算是 bug 了吧,sed414 和 sed421 都没有这个情况。
可以这样:- sed -i "/^[ \t]*$/d; s/$/\r/" a.txt
复制代码
sed414 是可以替换成功的,你之前因为没有加 -i 参数。
作者: strong12345 时间: 2011-8-1 17:04
这2天再研究正则表达式...
小有心得
终于研究出用fr.exe去除空行的代码(包含\s \t 等空格行)- ::去除所有空白行(包含 \s \t 等空白行)
- fr 文件.txt -r:"[\r\n]+(\s)+\n" -t:"\r\n"
-
- ::去除第一,最末空白行
- fr 文件.txt -r:"^\r\n|\r\n$" -t
复制代码
有个重点在于,有文字的行,尾端换行符为 \r\n
没有文字(只含 \s \t)的行,尾端换行符却只有 \n
作者: tmplinshi 时间: 2011-8-1 18:17
回复 21# strong12345 - fr 文件.txt -r:"^(\t|\s)*\n" -t
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |