2017-11-27 10 views
0

Ich habe drei Dateien. File1 hat Rekord wieschreibe Datensätze aus vielen Dateien in eine Datei

abc|123 
bcd|234 
cde|345 

und File2 hat Aufzeichnungen wie

12 
13 

und File3 hat Aufzeichnungen wie

Add|xyz.txt|04 
Add|str.txt|05 
Del|uyt.txt|99 

Hier versuche ich Aufzeichnungen aller Dateien in eine Datei zu setzen. So wird die Ausgabe (final.txt) wie folgt aussehen:

abc|123|12|Add|xyz.txt|04 
bcd|234|13|Add|str.txt|05 
cde|345| |Del|uyt.txt|99 

Antwort

2

Wie wäre es paste mit: -

paste -d'|' file1 file2 file3 
abc|123|12|Add|xyz.txt|04 
bcd|234|13|Add|str.txt|05 
cde|345||Del|uyt.txt|99 
0

Mit einem zusätzlichen Aufwand Räume für eine bessere Ausrichtung zu erhalten, auch column

paste -d'|' file1 file2 file3 | column -tns '|' 

abc 123 12 Add xyz.txt 04 
bcd 234 13 Add str.txt 05 
cde 345  Del uyt.txt 99 

Sie ersetzen das Trennzeichen zurück durch sed

paste -d'|' file1 file2 file3 | column -tns '|' | sed 's/\([^ ]\) /\1|/g;s/ \([^ ]\)/|\1/g' 

abc|123|12|Add|xyz.txt|04 
bcd|234|13|Add|str.txt|05 
cde|345| |Del|uyt.txt|99 
zu verwenden, berücksichtigen
Verwandte Themen