我知道我可以通過使用「flip -u」(cygwin flip)來修復它們,它基本上刪除了其中一個0xd,使用DOS樣式行尾(0x0d 0x0a)(當然,從技術上講,這可能被認爲是一個bug!)。如何用MIXED行結尾找到/修復文件(0x0d 0x0d 0x0a)
但是另一方面,我想選擇性地做這件事,確保我正在修復的是一個「非二進制」文件,並明確用0x0d 0x0a代替0x0d 0x0d 0x0a序列。沒有運行看起來像我想要的(也可能更多)的錯誤程序。
請注意,grep -P'\ x0d \ x0d \ x0a'和grep -P'\ x0d \ x0d'找不到這些行。
雖然人們說的grep -P「X0D \ X0A」被正確找到行結束,我不得不猜測,別的東西是怎麼回事,因爲它不能在混合行尾文件匹配其他模式(0x0d 0x0d 0x0a)。
謝謝,我寄予厚望,但...即使該文件有0x0d 0x0d 0x0a行結尾,貓在行尾顯示^ M $,而不是^ M^M $(Windows/cygwin)。基本上0x0d 0x0d 0x0a混合似乎不適用於已發佈在這個主題上的大多數模式(sed,perl,grep等)! - ( – 2010-09-22 23:23:40
嗯,非混合(DOS)文件cat的結果 - A只是$ ...,現在我需要知道這是否如預期的那樣,或者是我看到的其他程序的另一個變體(例如,儘管\ x0d \ x0a可用於egrep查找行,某些原因\ x0d \ x0d不會找到任何行,所以它就好像程序將這些字符視爲一種特殊情況,而不是對文件中所有字符的文字搜索。就像我說的,我想知道我是字面上的匹配0x0d0x0d0x0a做任何改變 – 2010-09-22 23:31:47
猜是時候編寫我自己的程序了-P – 2010-09-22 23:32:46