我有一個 csv 文件,我打算將其匯入到mysql
表中。因此,我想確保我的報告是LINES TERMINATED BY
正確的。但是我無法弄清楚哪些字元正在終止此 csv 中的行。
我猜它是由\n
(標準 Unix EOL)終止的。我怎樣才能確定這一點?
我試過了
cat -v file.csv
file file.csv
我也嘗試過使用 vim,:set list
它只顯示了換行符的位置$
任何建議,將不勝感激
答案1
您可以建立檔案的十六進位轉儲,xxd
該檔案是套件的一部分vim-common
。
xxd file.csv | less
然後檢查行結尾:
- 0a => \n
- 0d => \r
- 0d0a => \r\n
答案2
您可以使用 來file
指示行結尾的類型。
Unix:
$ file file1.txt
file1.txt: ASCII text
作業系統:
$ file file2.txt
file2.txt: ASCII text, with CRLF line terminators
並且知道 DOS 使用回車符和換行符(“\r\n”)作為行結束符,而 Unix 僅使用換行符(“\n”)。
因此您可以確定您想要的任何文件的 EOL。
答案3
為什麼不簡單地設定您喜歡的行結束樣式,而不是檢查:
sudo apt-get dos2unix
將使您能夠存取dos2unix
命令unix2dos
列實用程式。
這些將根據名稱轉換文字檔案。
注意:具有混合內容的文件有很麻煩,我不知道這個問題是否消失了。