Ich muss die Anzahl der Zeilen aus eingehenden CSV-Dateien abrufen.
Ich habe den folgenden Befehl verwendet, um die Zählung zu erhalten.
wc -l filename.csv
Betrachten Sie eine Datei mit 1 Datensatz, ich erhalte einige Dateien mit einem \*
am Anfang, und für diese Dateien, wenn ich den obigen Befehl absetze, gibt es count of zurück 0
.
Warum wird \*
am Dateianfang nicht als gezählte Zeile eingetragen und gibt es eine Abhilfe?
linux
microsoft-excel
command-line
unix
csv
Devoloper250
quelle
quelle
Antworten:
Ein Trick, um sicherzustellen, dass auch nicht terminierte Zeilen gezählt werden, kann sein:
Dies scheint alle nicht leeren Zeilen zu zählen, überspringt jedoch leere Zeilen.
Bitte beachten Sie, dass dies eher ineffektiv ist, aber für den gelegentlichen Gebrauch wahrscheinlich kein Problem darstellt.
Eine andere Möglichkeit, zählt alle Zeilen inklusive nicht abgeschlossener letzter Zeile:
Getestet auf RHEL 6.2. YMMV.
quelle
awk
Befehl funktioniert unter OS Xwc meldet 0 für Dateien mit nur einer Zeile und ohne nachfolgende neue Zeile. Vielleicht sind Ihre One-Record-CSV-Dateien so? Sie können mit hexdump nach abschließenden Zeilenumbrüchen suchen, zB:
Suchen Sie am Ende nach dem ASCII-Code 0a.
quelle