2017-09-01 105 views
0

我有哪裏我試圖使用Fart.exe一個回車替換成一排兩個回車csv文件兩個回車。首先,這可能嗎?如果是這樣,那麼CSV中的文本將如下所示,其中「CRLF」是實際的回車。Fart.exe替換成一排

,CRLF 
CRLF 

但我希望它只是這一點沒有在第二行的額外的回車:

,CRLF 

我想我可能只是做以下,但它不會工作:

CALL "C:\tmp\fart.exe" -C "C:\tmp\myfile.csv" ,\r\n\r\n ,\r\n 

我需要知道要更改,\ r \ n \ r \ n才能完成此項工作。任何想法,我可以做到這一點?謝謝!

+0

[不使用FART(https://superuser.com/a/1127064)! – Compo

+0

[Similar questions](https://stackoverflow.com/questions/6925730/problems-with-replacing-newline)使用PowerShell。 – Compo

+2

好像你只是在談論刪除空行。 – Squashman

回答

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來獲得對轉義序列的支持。

我從來沒有用過放屁,所以我不能肯定 - 但我相信下面將工作

call fart -B -C myFile.txt "\r\n\r\n" "\r\n" 

如果你有許多連續的空行,那麼你將需要運行屁命令一再重複,直到沒有更多的變化。