2012-06-17 32 views
2

我有一個文本文件,其中每行可能與一些固定標籤用空格包圍結束,如如何更換空格沒有新線

一些文字TAG

我寫像這樣:

while (<FILE>) { 
    s/\s*TAG\s*$//; 
    print; 
} 

問題是,這從最後刪除新行,是否有反正告訴Perl不要取代新行?我唯一想到的是寫

s/\s*TAG[ \t]*$//; 

有沒有更好的辦法?

[不知道這是否是相關的,但在Linux操作系統上]

感謝。

+0

看來,這將是更容易只是把換行符回來。 –

+0

如果這將在一行中,添加'-l'選項將解決您的問題。 – TLP

回答

3

[^\S\n]將匹配的空白,這不是一個新行,所以:

s/\s*TAG[^\S\n]*$//; 

或者你可以只是做:

s/\s*TAG\s*$/\n/;