Ich habe eine Excel-Datei, die im Bild unten gezeigt wird und zum Download bereitstehtHier. Ich muss die Variablen unter „Element“ (Spalte B) und die Werte in Spalte G extrahieren. Zunächst habe ich versucht, die Excel-Datei als kommagetrennte CSV-Datei zu speichern. Wenn ich jedoch die Anzahl der Zeilen im Mac OS X-Terminal überprüfe, wird mir angezeigt, dass die CSV-Datei nur aus einer Zeile besteht:
$ wc -l Layout.csv
0 Layout.csv
Irgendeine Idee, warum das so sein könnte?
Hier ist die in einem Texteditor geöffnete CSV-Datei, die aus mehreren Zeilen besteht:
Sie können diese Datei herunterladenHier.
Antwort1
Nachdem Sie Ihre CSV-Ausgabe gesehen haben, ist das Problem klar: Sie haben Excel angewiesen, CR-Zeilenenden zu verwenden, wahrscheinlich, weil es Sie darüber informiert hat, dass diese im „Macintosh“-Stil sind. Das sind stark veraltete Informationen, die seit über einem Jahrzehnt nicht mehr stimmen.
Es gibtdrei Hauptzeilenendstile:
LF: Der von Unix und allen seinen primären Derivaten verwendete Stil,einschließlichMac OS X.
CR: Der Stil, der vom „klassischen“ Mac OS gewählt wurde, wurde von Apple 2001 mit der Umstellung auf Mac OS X aufgegeben. Da das klassische Mac OS das einzige populäre Betriebssystem ist, das jemals diesen Stil verwendet hat, wird er in der Praxis fast nie mehr verwendet. Die CSV-Datei, auf die Sie verlinkt haben, ist eines dieser seltenen Beispiele.
CR+LF: Der DOS/Windows-Stil des Zeilenendes. Technisch gesehen entspricht dieser Stil eher der Geschichte von ASCII und ist daher „korrekter“, aber außerhalb der Microsoft-Welt ist er selten anzutreffen.
Die beste Möglichkeit, dies zu beheben, besteht darin, Excel dazu zu bringen, Zeilenenden mit LF zu verwenden, was die native Form von OS X ist, was wc
andere Unix-Befehlszeilentools zufriedenstellen wird. Dies liegt jedoch außerhalb des Rahmens dieses Forums. (Versuchen SieSuper Userwenn Sie es wirklich nicht alleine hinbekommen.)
Eine themenbezogene Methode zur Behebung des Problems über die Unix-Befehlszeile ist:
$ tr '\r' '\n' < Layout.csv > Layout-LF.csv
(Dies ist eine dieser Arten von Problemen, für die es ungefähr so viele verschiedene Lösungen gibt, wie es Leute gibt, die sie anbieten.)