我正面臨一個奇怪的問題。我想要做的答案已經存在Here。我試圖從包含數千行的文件的每一行刪除尾隨逗號。這樣的 -這個sed命令有什麼問題?
這是我的命令 -
sed -i 's/,*$//g' file_name.csv
然而,輸出我得到的是完全一樣的圖像上,並尾隨逗號不會被刪除。
我認爲SED不符合該模式,因此無法取代逗號。要檢查是否有任何隱藏字符的文件,我用VIM的:設置列表選項 -
有每個而這正是預期一行的末尾只$。
我不明白爲什麼命令失敗。
我正面臨一個奇怪的問題。我想要做的答案已經存在Here。我試圖從包含數千行的文件的每一行刪除尾隨逗號。這樣的 -這個sed命令有什麼問題?
這是我的命令 -
sed -i 's/,*$//g' file_name.csv
然而,輸出我得到的是完全一樣的圖像上,並尾隨逗號不會被刪除。
我認爲SED不符合該模式,因此無法取代逗號。要檢查是否有任何隱藏字符的文件,我用VIM的:設置列表選項 -
有每個而這正是預期一行的末尾只$。
我不明白爲什麼命令失敗。
我可以建議你兩種選擇: 第一個是我的最愛。
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提示最後的命令。
第二個命令是錯誤的,cat是無用的,file可能會被截斷後才能被讀取 –
@NahuelFouilleul如果它的文件非常龐大。那麼是的:) –
可以使用一個臨時文件:'tr -d'\ r'< file > file.tmp; mv file.tmp文件' –
嘗試'sed's /,\ + $ // g'' –
也不張貼純文本的圖片。只是複製和粘貼文字 – sashang
'sed's /,*.$// g''可以做到 – Edvin