2009-09-16 23 views

回答

3

試試這個正則表達式:

^(\r\n)+|\r\n(\r\n)+$ 
0

根據不同的語言或者在多行模式下的正則表達式:

^\r\n|\r\n$ 

或者這個表達式:

\A\r\n|\r\n\z 

第一個在例如工作perl(其中^和$匹配單行模式下的開始/結束行和多行模式下字符串的開始/結束)。後者在例如紅寶石。

0

這裏有一個sed版本應打印出剝離文件:

sed -i .bak -e '/./,$!d' -e :a -e '/^\n*$/{$d;N;ba' -e '}' foo.txt 

-i告訴它進行就地編輯和.bak告訴它備份原始與.bak擴展第一。如果需要關注內存,則可以使用''而不是.bak,並且不會進行備份。不過,除非絕對必要,否則我不推薦。

第一個命令('/./,$!d'應該除去所有前導空行),其餘的是處理所有尾隨的空行。

請參閱this list of handy sed 1-liners您可以鏈接在一起的其他有趣的事情。

0

^\s+|\s+$

\s is whitespace (space, \r, \n, tab) 
+ is saying 1 or more 
$ is saying at the end of the input 
^ is saying at the start of the input 
+0

他想只刪除\ r \ n – Thiyagaraj 2009-09-16 14:52:15

+0

在大多數實現$和^指的是行的開始/結束,不是整個字符串,除非您專門啓用多行模式。 – sepp2k 2009-09-16 14:52:43

+0

@Thiyagaraj:他說* \ r \ n後面跟着'沒什麼'或之前沒有'*',所以我猜他是指空格。 @ sepp2k:正確 – amitkaz 2009-09-16 15:25:24

相關問題