找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: strong12345

[文本处理] [已解決] fr.exe如何利用正则表达式移除文件空白行?

[复制链接]
发表于 2011-7-31 15:45:03 | 显示全部楼层
回复 13# strong12345


试试版主提供的4.0.7
 楼主| 发表于 2011-7-31 16:10:08 | 显示全部楼层
本帖最后由 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档
发表于 2011-7-31 16:16:52 | 显示全部楼层
回复 17# strong12345


4.2.1在使用-i选项的时候会自动生成一个备份文件,感觉不爽。
发表于 2011-7-31 16:22:39 | 显示全部楼层
回复 17# strong12345
  1. sed "/^[ \t]*$/d" a.txt | more >b.txt
复制代码
这样应该不会有\n的问题了吧
发表于 2011-7-31 16:24:55 | 显示全部楼层
是的,我用4.07成功了,感谢版主
可是,替换后的换行 变成仅是 \n ,不是一般notepad 认识的 \r\n
另外, ...
strong12345 发表于 2011-7-31 16:10



果然 - -|||,这个应该算是 bug 了吧,sed414 和 sed421 都没有这个情况。

可以这样:
  1. sed -i "/^[ \t]*$/d; s/$/\r/" a.txt
复制代码
sed414 是可以替换成功的,你之前因为没有加 -i 参数。
 楼主| 发表于 2011-8-1 17:04:11 | 显示全部楼层
这2天再研究正则表达式...
小有心得
终于研究出用fr.exe去除空行的代码(包含\s \t 等空格行)
  1. ::去除所有空白行(包含 \s \t 等空白行)
  2. fr 文件.txt -r:"[\r\n]+(\s)+\n" -t:"\r\n"

  3. ::去除第一,最末空白行
  4. fr 文件.txt -r:"^\r\n|\r\n$" -t
复制代码
有个重点在于,有文字的行,尾端换行符为 \r\n
没有文字(只含 \s \t)的行,尾端换行符却只有 \n
发表于 2011-8-1 18:17:34 | 显示全部楼层
回复 21# strong12345
  1. fr 文件.txt -r:"^(\t|\s)*\n" -t
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 21:25 , Processed in 0.015896 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表