schneiden Ich habe eine Reihe von CSV-Dateien (ca. 250), die jeweils 300 bis 500 Datensätze. Ich muss 2 oder 3 Spalten von jeder Datei schneiden und sie zu einer anderen speichern. Ich benutze ubuntu OS. Gibt es eine Möglichkeit, es in Befehl oder Dienstprogramm zu tun?wie Spalten von csv
Antwort
Wenn Sie wissen, dass das Spaltentrennzeichen nicht in den Feldern vorkommt, können Sie cut verwenden.
$ cat in.csv
foo,bar,baz
qux,quux,quuux
$ cut -d, -f2,3 < in.csv
bar,baz
quux,quuux
Sie können die Schale buildin ‚für‘ Schleife über alle Eingabedateien verwenden.
Wenn die Felder das Trennzeichen enthalten könnten, sollten Sie eine Bibliothek finden, die CSV-Dateien analysieren kann. In der Regel enthalten Skriptsprachen für allgemeine Zwecke ein CSV-Modul in ihrer Standardbibliothek.
Ruby: require 'csv'
Python: import csv
Perl: use Text::ParseWords;
Wenn Ihre Felder Kommas oder Zeilenumbrüche enthalten, können Sie ein Hilfsprogramm verwenden ich schrieb Schnitt (und andere UNIX-Textverarbeitungs-Tools), damit ordnungsgemäß mit den Daten arbeiten.
https://github.com/dbro/csvquote
Dieses Programm findet Sonderzeichen innerhalb zitierte Felder, und ersetzt sie vorübergehend mit Zeichen nicht druckbare, die den Schnitt Programm nicht verwirren. Dann werden sie wiederhergestellt, nachdem der Schnitt abgeschlossen ist.
lutz‘Lösung würde:
csvquote in.csv | cut -d, -f2,3 | csvquote -u
Ja, es hat sehr gut für mich funktioniert: https://stackoverflow.com/questions/17199311/how-to-delete-a-column-columns-of-a-csv-file-which-has-cell-values-with -a-string/29134579 # 29134579 – nono
Wenn Sie ssconvert
verwendet, um die CSV zu erhalten Sie könnten versuchen:
ssconvert -O 'separator="|"' "file.xls" "file.txt"
Beachten Sie die TXT Erweiterung statt CSV, auf diese Weise wird Verwenden Sie Gnumeric_stf: stf_assistant Exporteur anstelle von Gnumeric_stf: stf_csv, mit dem Sie Optionen (-O
Parameter) verwenden können. Andernfalls erhalten Sie eine Der Dateischoner nimmt keine Optionen Fehler. Pfeifencharakter ist viel unwahrscheinlicher, aber du solltest vorher nachsehen.
Dann können Sie es umbenennen und Dinge tun, wie:
cat file.csv | cut -d "|" -f3 | sort | uniq -c | sort -rn | head
- Anderes Beispiel Optionen:
-O 'eol=unix separator=; format=preserve charset=UTF-8 locale=en_US transliterate-mode=transliterate quoting-mode=never'
. - A solution with AWK v4+.
ssconvert
man page.
- 1. Pandas: Parse-Spalten von CSV
- 2. CSV + Dropdown-Spalten-Zuordnung
- 3. Jackson CSV fehlende Spalten
- 4. Umbenennen von Spalten in csv durch Spaltenindex
- 5. Pandas Schreiben von Dataframe-Spalten nach csv
- 6. Csv Spalten und Kartierung sie
- 7. Spalten aus einer CSV aktualisieren
- 8. Schreiben von Zeilen/Spalten von .csv in Matrix mit Matlab
- 9. Condense mehrere Spalten lesen Spark CSV
- 10. Spalten in einer CSV extrahieren und zusammenführen
- 11. Kopieren der Matching Spalten aus CSV-Datei
- 12. Sortieren CSV-Datei von drei Spalten mit Befehl mit Nullwert?
- 13. Bash: Sortieren CSV-Datei von ersten 4 Spalten
- 14. Import bestimmte Spalten von CSV mit Google Cloud SQL
- 15. Konvertieren Sie bestimmte Spalten von CSV in Wörterbuch der Summen
- 16. PHP-Array in CSV-Zeilen anstelle von Spalten exportieren
- 17. COPY-Befehl: Kopieren Sie nur bestimmte Spalten von CSV
- 18. Python - Aufteilen von Daten als Spalten in CSV-Datei
- 19. Python - Reihenfolge Spalten in einem CSV
- 20. Laden CSV von verschiedenen Spalten Nummer mit Pandas
- 21. Ermitteln der Gesamtanzahl von CSV-Spalten mit NodeJS
- 22. CSV-Größe Spalten abhängig vom Inhalt
- 23. cbind bestimmte Spalten aus mehreren CSV-Dateien
- 24. mit den gleichen Spalten wie in einer csv
- 25. Wie schreibe Spalten Header in eine CSV-Datei mit Ruby?
- 26. Python: Reorder Spalten einer CSV-Datei
- 27. Vergleich einiger Spalten von 2 csv-Dateien mit Python
- 28. Schreiben von Python-Listen in Spalten in CSV
- 29. CSV-Exporte - Sortierung von Spalten mit scrapy crawl -o output.csv
- 30. Wie entferne ich Spalten aus einer CSV-Datei mit Scala
Sie können alle Dateien mit etwas wie: "* .csv" | scalable verarbeiten xargs cut -d, -f2,3> out.csv – pixelbeat
Sie können die Option '--output-delimiter = STRING' von' cut' verwenden, wenn Sie das Komma loswerden oder es in etwas anderes ändern möchten. –
Das Hauptproblem bei dieser Antwort ist, dass 'cut' nicht mit Feldern in Anführungszeichen arbeitet, die das Trennzeichen enthalten. Wenn Ihre CSV-Datei über Daten verfügt, die dies tun, müssen Sie etwas anderes verwenden. –