2015-07-21 3 views
5

Ich möchte im Grunde nehmen Sie die Zeile, die unter dem Wort "LOAD" in Dateiname1 ist, und machen es die zweite Spalte in einer neuen Datei, wobei die erste Spalte aus Dateiname2 stammt. (Dies wird in einer Schleife getan, aber ich denke, das ist irrelevant.)Wie grep output pipes Eingabe einfügen?

Also, wenn ich

grep -A 1 LOAD filename1 >> temp 
paste filename2 temp >> filename3 
rm temp 

Gibt es eine Möglichkeit zu tun, dass in einem Befehl, ohne temporäre Datei? So etwas wie

grep -A 1 LOAD filename1 | paste filename2 "grep output" >> filename3 

Antwort

6

können Sie verwenden Prozess Substitution stattdessen eine temporäre Datei zu verwenden:

paste filename2 <(grep -A 1 LOAD filename1) >> filename3 
+1

Auf alte Paste (Paste 8.4 auf CentOS6.5), hatte ich das verwenden ' "Flagge". Es funktionierte mit Pipe (@dermen antwort) oder Prozesssubstitution –

1
grep -A 1 LOAD filename1.txt | paste filename2.txt /dev/stdin >> filename3.txt