Untersuchen von EOL-Zeichen in einer CSV

Untersuchen von EOL-Zeichen in einer CSV

Ich habe eine CSV-Datei, die ich in eine Tabelle importieren möchte mysql. Ich möchte daher sicherstellen, dass ich sie LINES TERMINATED BYrichtig melde. Ich kann jedoch nicht herausfinden, welche Zeichen die Zeilen in dieser CSV beenden.

Ich würde vermuten, dass es durch \n(das standardmäßige Unix-EOL) beendet wird. Wie kann ich das sicher feststellen?

ich habe es versucht

  • cat -v file.csv
  • file file.csv

Ich habe auch versucht, vim zu verwenden und :set listdas zeigte nur die Position der Zeilenumbrüche mit$

Alle Vorschläge sind willkommen

Antwort1

Sie können einen Hex-Dump Ihrer Datei erstellen, xxdder Teil des vim-commonPakets ist.

xxd file.csv | less

Überprüfen Sie dann die Zeilenenden:

  • 0a => \n
  • 0d => \r
  • 0d0a => \r\n

Antwort2

Damit können Sie sich file einen Anhaltspunkt für die Art der Zeilenenden verschaffen.

Unix:

$ file file1.txt
file1.txt: ASCII text

DOS:

$ file file2.txt
file2.txt: ASCII text, with CRLF line terminators

und zu wissen, dass DOS als Zeilenende einen Wagenrücklauf und einen Zeilenvorschub ("\r\n") verwendet, während Unix nur einen Zeilenvorschub ("\n") verwendet.

So können Sie das EOL jeder gewünschten Datei bestimmen.

Antwort3

Anstatt ein PRÜFEN durchzuführen, können Sie auch einfach den gewünschten Zeilenende-Stil festlegen:

sudo apt-get dos2unixgibt Ihnen Zugriff auf dos2unixBefehlszeilen unix2dos-Dienstprogramme.

Diese konvertieren die Textdateien entsprechend ihrer Namen.

Vorbehalt: Dateien mit gemischtem Inhalthatwar lästig, ich bin nicht auf dem Laufenden, ob das Problem behoben ist.

verwandte Informationen