我有csv文件,在该文件中,我试图使用Fart.exe将一行的两个回车替换为一个回车。首先,这可能吗?如果是这样的话,CSV内的文本将如下所示,其中"CRLF“是实际的回车。
,CRLF
CRLF
但我希望它只是这样,没有额外的第二行的回程:
,CRLF
我想我可以做以下几件事,但这行不通:
CALL "C:\tmp\fart.exe" -C "C:\tmp\myfile.csv" ,\r\n\r\n ,\r\n
我需要知道如何将,\ in \r\n改为什么,以使其工作。有什么办法让我做到这一点吗?谢谢!
发布于 2017-09-01 19:40:40
正如壁球员所建议的那样,你只是在尝试删除空行。
没有必要使用第三方工具来做到这一点。您可以简单地使用FINDSTR丢弃空行:
findstr /v "^$" myFile.txt >myFile.txt.new
move /y myFile.txt.new *. >nul
然而,只有当所有线路都以CRLF结束时,这才能起作用。如果您有一个以LF结尾的unix格式化文件,那么它将无法工作。
一个更健壮的选择是使用JREPL.BAT -正则表达式命令行文本处理实用程序。
jrepl "^$" "" /r 0 /f myFile.txt /o -
如果将命令放入批处理脚本中,请确保使用调用JREPL。
放屁一次处理一行,而CRLF不被认为是线的一部分。所以你不能用普通的放屁命令来移除CRLF。如果您真的想使用屁,那么您将需要使用-B二进制模式。您还需要使用-C来获得对转义序列的支持。
我从来没有用过放屁,所以我不能肯定--但我相信下面的方法会有效的
call fart -B -C myFile.txt "\r\n\r\n" "\r\n"
如果您有许多连续的空行,那么您将需要重复运行FART命令,直到没有更多的更改。
https://stackoverflow.com/questions/46005299
复制相似问题