2016-07-04 32 views
-2

試圖刪除不正確的回車在文件中返回「CRLF」,但保留正確的回車。我想我有一些可行的邏輯,但不能完全理解腳本。用於替換換行的Windows批處理文件

其中^ p代表「回車」

替換yestemp
是^ P與notemp
更換無^ P 更換無效^ P與inactivetemp
替換^ P用「」(即空)
更換Yestemp使用是^ p
更換notempwith沒有^ p
更換inactivetemp非活動^ p

+1

你真的*需要這個DOS嗎?有沒有Windows的機會? – Joey

+0

我和喬伊有同樣的問題。此外,您的語言不一致,您的標題討論換行(字節代碼10,十六進制0x0A),您可以參考'^ p'表示「回車」(字節代碼13,十六進制0x0D​​)。你的第一句話將回車作爲「CRLF」進行討論,它是Windows(和DOS)用作行終止符的回車換行組合的常用簡寫。那麼,你究竟想要做什麼? – dbenham

+0

另外,你是否真的想在「是」,「否」和「非活動」之後保留'^ p'(不管它應該表示什麼),並刪除其餘的?或者這些單詞是否還有別的東西? – dbenham

回答

0

我想你可以用純本地批​​處理完成此操作,但這會非常痛苦,並且可能非常慢。使用JREPL.BAT - a hybrid JScript/batch regular expression find/replace utility這是微不足道的。這是純粹的腳本,從XP以後的任何Windows機器上本機運行 - 不需要第三方exe文件。該實用程序內置了完整的文檔,可通過jrepl /?jrepl /??訪問頁面輸出。

下面的解決方案是基於從您的評論規格:

BlockquoteThe的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 - 
+0

非常好。謝謝! –

+1

@DavidAnton - 非常感謝,但在本網站上正確的做法是通過點擊左上角附近的複選標記來接受完全回答您的問題的答案。這樣可以給答案海報15個代表點,並且提問者可以得到2個代表點來花時間接受答案。只有一個問題可以被接受。一旦你達到15分,你就有能力投票給你認爲有用的答案,哪些答案10分給答案海報。你可以根據自己的意願投多少答案,甚至可以回答其他人的問題。 – dbenham

相關問題