
Ich möchte eine Datei mit zwei Tabellen erstellen.
Zum Beispiel:
Ich habe das:
cat 1.log | cut -d: -f 9 | sort | uniq
teste
teste2
teste3
und ich habe einen anderen Befehl:
cat 1.log | cut -d: -f 6 | cut -d " " -f2 | sort | uniq
zurückkehren:
hello
good
bed
und ich möchte eine Datei wie diese erstellen:
teste | hello
teste2 | good
teste3 | bed
Wie macht man das?
Antwort1
obwohl Sie nach einer CSV-Datei fragen, fragen Sie tatsächlich nach einer durch Pipes getrennten Datei
Sie können dies mit dem folgenden Befehl erreichen paste
:
paste -d '|' file1.txt file2.txt
Das Ergebnis lautet wie folgt:
teste|hello
teste2|good
teste3|bed
das -d
in paste
fügt ein ausgewähltes Trennzeichen ein
Wenn das Ergebnis Leerzeichen um das Trennzeichen enthalten soll |
, können Sie hinzufügen, sed 's/|/ | /g'
dass alle Vorkommen von |
(ohne umgebende Leerzeichen) durch |
(mit umgebendem Leerzeichen auf jeder Seite) ersetzt werden.
paste -d '|' file1.txt file2.txt | sed 's/|/ | /g'
Ergebnis:
teste | hello
teste2 | good
teste3 | bed
nur für den Fall, dass Sie eine durch Kommas getrennte Datei möchten, dann müssen Sie nur Folgendes ändern:
das -d '|'
zu-d ','
das würde so aussehen:
paste -d ',' file1.txt file2.txt