Wenn ich eine Registerkarte delimeted Datendatei input.dat mit einem Format wie:Wie verarbeiten Sie mehrere Felder, die durch eine Pipe laufen?
#id acct name city age
12 100290 Sally San Francisco 24
15 102911 Jerry Sacramento 40
99 102134 Amir Eureka 82
Kann ich cut(1)
oder etwas ähnliches mehr Verarbeitungsfunktionen ex :(lookup_id, scrub_acct, scrub_name, lookup_city, scrub_age
) pro Feld wie die Datenläufe laufen durch eine Pfeife?
Es ist einfach, dies mit einem Feld zu tun:
cat input.dat | cut -f1 | lookup_id > output.dat
aber ich frage mich, ob es eine Möglichkeit gibt, dies pro Feld zu tun, und haben die zu OUTPUT.DAT umgeleitet Ergebnisse.
#id acct name city age
AA XXXXX0 SXXXX city-57 20s
AC XXXXX1 JXXXX city-29 40s
AF XXXXX4 AXXXX city-100 80s
Vielleicht eine vorge Frage ist, kann man (tun dies einfach)?
Ich überlege auch, wie paste(1)
eine Alternative sein könnte, nur die Spalten wieder zusammenkleben, aber vielleicht gibt es einen besseren Weg.
Ich schlage vor, "awk" zu betrachten. – Cyrus
ah guter Punkt, ich denke, Sie könnten eine Funktion auf jedem Feld ausführen und eine Subshell starten. Gibt es keinen Weg, dies mit Schnitt zu tun? Awk ist manchmal so ein Biest. @Cyrus – qodeninja
Also 'Lookup_id, scrub_acct, scruelf_name, lookup_city, scrub_age' sind Shell-Funktionen? – anubhava