我在格式一些數據導出。刪除換行符從谷歌表
使用Gitbash,我使用file命令來發現這是帶有CRLF終止符的ASCII文本。如果我也使用命令cat -v,我會在Gitbash中看到每行結束^ M。
我想刪除這些終止,留下一行。
我已經試過如下:
sed -e 's/'\r\n'//g' <data.csv> output.csv
小心把\ r \ n的,以便反斜線字面對待,但它不工作單引號。沒有錯誤,只是沒有效果。
我使用Gitbash爲Windows。
我在格式一些數據導出。刪除換行符從谷歌表
使用Gitbash,我使用file命令來發現這是帶有CRLF終止符的ASCII文本。如果我也使用命令cat -v,我會在Gitbash中看到每行結束^ M。
我想刪除這些終止,留下一行。
我已經試過如下:
sed -e 's/'\r\n'//g' <data.csv> output.csv
小心把\ r \ n的,以便反斜線字面對待,但它不工作單引號。沒有錯誤,只是沒有效果。
我使用Gitbash爲Windows。
引號內的引號互相取消,所以你實際上撤消了換行符的sed命令的引號。你可以跳過像's|'\''\r\n'\''||g'
這樣的引號,但是這隻會將它們包含在字符串中,這與您的案例中的任何內容都不匹配。
但是,這並不是唯一的問題; sed
默認只處理換行符之間的字符串。
嘗試添加-z
argument to sed
,如:
sed -z -e 's|\r\n||g' <data.csv> output.csv
雖然我猜你可能也需要用逗號來替代它:
sed -z -e 's|\r\n|,|g' <data.csv> output.csv
非常感謝@svenper:這看起來很有效,雖然有些文本編輯器似乎還認爲有換行符,而其他編輯則不行。但是,根據貓和文件命令,休息時間已經過去了。 –
您應該提到'-z'會將整個輸入文件讀入內存,如果文件很大,這可能是不可取的。另外,我認爲'-z'是GNU專用的,所以如果它是真的,也應該說明。 –
爲什麼不'CLEAN'數據導出到csv之前? –
也許我誤解了你的觀點,但無論我在Google表格中做什麼,它仍然會以CSV格式與行終止符一起出現,這是問題所在。 –
你不會把'\ r \ n'放在單引號內,你把它們放在單引號之外。這聽起來像你只需要運行'dos2unix'。 –