2017-08-17 112 views
0

我正面臨一個奇怪的問題。我想要做的答案已經存在Here。我試圖從包含數千行的文件的每一行刪除尾隨逗號。這樣的 -這個sed命令有什麼問題?

enter image description here

這是我的命令 -

sed -i 's/,*$//g' file_name.csv 

然而,輸出我得到的是完全一樣的圖像上,並尾隨逗號不會被刪除。

我認爲SED不符合該模式,因此無法取代逗號。要檢查是否有任何隱藏字符的文件,我用VIM的:設置列表選項 -

enter image description here

有每個而這正是預期一行的末尾只$

我不明白爲什麼命令失敗。

+1

嘗試'sed's /,\ + $ // g'' –

+2

也不張貼純文本的圖片。只是複製和粘貼文字 – sashang

+0

'sed's /,*.$// g''可以做到 – Edvin

回答

0

我可以建議你兩種選擇: 第一個是我的最愛。

 dos2unix file 
#####will work for Huge File also 

然後嘗試運行該命令。

其他方式做到這一點:

cat file | tr -d '\r' > file 
###may not work for huge file 

然後運行命令。

tr -d '\r' <file> file.tmp ; mv file.tmp file 
    ##will work for Huge File also 

感謝@Nahuel提示最後的命令。

+0

第二個命令是錯誤的,cat是無用的,file可能會被截斷後才能被讀取 –

+0

@NahuelFouilleul如果它的文件非常龐大。那麼是的:) –

+0

可以使用一個臨時文件:'tr -d'\ r'< file > file.tmp; mv file.tmp文件' –