2016-01-22 60 views
-1

在CSV文檔中找到所有無效\ r \ n並使用linux終端替換爲有效\ r \ n的最佳方式是什麼?在Linux中替換CSV無效行尾

從我的研究,我所遇到的:

sed 's/\r$//' 

不幸的是,我不明白的語法和不知道這是否會來的伎倆。

任何幫助,將不勝感激。

+1

'* invalid \ r \ n *'和'* valid \ r \ n *'之間的區別是什麼?無論如何,該正則表達式會將'\ r \ n'轉換爲'\ n',但只是第一個。添加'/ g'。或者更好:只需使用'dos2unix'。 – Biffen

+0

我的歉意。角色從視圖中逃脫了。我已更新:-) – hawx

+1

該文件是否包含回車符 - 換行符? – Biffen

回答

1
sed 's/\r\\$/\r/g' 

應該這樣做。即用CR替換每行末尾的CR,\。請注意0​​。沒有它sed只會取代第一個匹配。

sed不會(通常)'看到'LF,因爲它正在爲線應用正則表達式行。因此,這意味着LF的位置。

+1

如果文件真的具有'\ r \\ n',那麼在n被轉義之前它將是一個很長的行,因爲這是行不通的。 – 123

+1

@ 123我將OP對這個問題的最新評論表示爲CR,反斜槓,LF。 – Biffen