用于替换换行符的Windows批处理文件

时间:2016-07-04 04:14:20

标签: batch-file

想要删除错误的回车" CRLF"在文件中但保留正确的文件。我认为我有一些可行的逻辑,但不能完全确定脚本。

其中^ p代表“回车”

用yestemp替换是^ p 用notemp替换No ^ p 将非活动^ p替换为inactivetemp
将^ p替换为“”(即null)
用Yes ^ p替换Yestemp 将notemp替换为No ^ p
将inactivetemp替换为Inactive ^ p

1 个答案:

答案 0 :(得分:0)

我想你可以用纯粹的原生批次做到这一点,但这会很痛苦,而且可能很慢。

使用JREPL.BAT - a hybrid JScript/batch regular expression find/replace utility这是微不足道的。它是从XP开始在任何Windows机器上本机运行的纯脚本 - 不需要第三方exe文件。完整文档内置于实用程序中,可通过jrepl /?访问,或jrepl /??可用于分页输出。

以下解决方案基于您的评论中的规范:

  

Blockquote txt文件包含LF和CRLF值。我想保留的字符串是YesLF和NoLF。我想删除所有其他LF和CRLF字符串

以下是使用/T选项

的解决方案
jrepl "(Yes|No)\n:\r?\n" "$&:" /t ":" /m /f "yourFile.txt" /o -

这是一个使用/J选项和一些用户提供的JScript

的解决方案
jrepl "((Yes|No)(?=\n))?\r?\n" "$1?$0:''" /j /m /f "yourFile.txt" /o -