我有csv文件,我正在尝试使用Fart.exe将一个回车连续替换为两个回车符。首先,这可能吗?如果是这样,CSV中的文本布局如下所示,其中“CRLF”是实际的回车。
,CRLF
CRLF
但是我希望它在没有第二行的额外回车的情况下就是这样:
,CRLF
我以为我可以在下面做,但它不会起作用:
CALL "C:\tmp\fart.exe" -C "C:\tmp\myfile.csv" ,\r\n\r\n ,\r\n
我需要知道要更改,\ r \ n \ r \ n 的内容才能使其正常工作。任何想法我怎么能做到这一点?谢谢!
答案 0 :(得分:2)
正如Squashman建议的那样,你只是想删除空行。
不需要第三方工具来执行此操作。您只需使用FINDSTR来丢弃空行:
findstr /v "^$" myFile.txt >myFile.txt.new
move /y myFile.txt.new *. >nul
但是,只有当所有行都以CRLF结尾时,这才有效。如果你有一个unix格式的文件,用LF结束每一行,那么它将不起作用。
更强大的选择是使用JREPL.BAT - a regular expression command line text processing utility。
jrepl "^$" "" /r 0 /f myFile.txt /o -
如果将命令放在批处理脚本中,请务必使用CALL JREPL。
FART一次处理一行,而CRLF不被视为该行的一部分。因此,您无法使用普通FART命令删除CRLF。如果您确实想使用FART,则需要使用-B二进制模式。您还需要使用-C来获得对转义序列的支持。
我从未使用过FART,所以我无法确定 - 但我相信以下内容会有效
call fart -B -C myFile.txt "\r\n\r\n" "\r\n"
如果您有许多连续的空行,则需要重复运行FART命令,直到不再有更改为止。