Die Kombination von Werten aus verschiedenen Dateien in eine CSV-Datei
Frage
Ich habe ein paar Dateien einen Wert in jeder Zeile enthalten.
EDIT:
dachte ich, die Antwort auf diese Frage, während in der Mitte den Postens des Schreibens und ahnte nicht, dass ich es durch einen Fehler in seinem unvollständigen Zustand geschrieben hatte.
Ich habe versucht zu tun:
paste -d ',' file1 file2 file 3 file 4 > file5.csv
und wurde einen seltsamen Ausgang bekommen. Ich später erkennen, dass vorging, da einige Dateien sowohl einen Wagenrücklauf hatten und ein Newline-Zeichen am Ende der Zeile, während andere nur die Zeilenende-Marke hatten. Ich habe immer daran zu erinnern, die Aufmerksamkeit auf jene Dinge zu bezahlen.
Lösung
Datei 1:
1 2 3
file2:
2 4 6
paste --delimiters=\; file1 file2
Wird ergeben:
1;2 3;4 5;6
Andere Tipps
Ich habe ein Gefühl, das man nicht beendet hat Ihre Frage noch eingeben, aber ich werde es noch einen Schuss. ;)
file1: file2: file3:
1 a A
2 b B
3 c C
~$ paste file{1,2,3} |sed 's/^\|$/"/g; s/\t/","/g'
"1","a","A"
"2","b","B"
"3","c","C"
Oder
~$ paste --delimiter , file{1,2,3}
1,a,A
2,b,B
3,c,C
Sie müssen wahrscheinlich die Frage zu klären oder retag aber wie es die Antwort steht unter.
Verbinden von zwei Dateien unter Linux
cat filetwo >> fileone
Vergessen Sie auch nicht über die immer vielseitig LogParser wenn Sie unter Windows.
Es kann SQL-ähnlichen Abfragen für Textdateien ausführen, um alle Arten von Merge-Operationen auszuführen.
Die bisherigen Antworten mit logparser oder die Commandline-Tools funktionieren sollen. Wenn Sie einige kompliziertere Operationen zu den Aufzeichnungen wie Filtern oder schließt sich tun möchten, könnten Sie ein ETL-Tool prüfen, mit (Pentaho, Mapforce und Talend in den Sinn kommen). Diese Tools geben Sie in der Regel eine grafische Palette, die die Beziehungen zwischen den Datenquellen zu definieren und alle Operationen, die Sie in den Zeilen ausführen möchten.