2017-03-07 2 views
-2

Ich habe eine Datei wie folgt aus:Wie wiederhole ich die erste Zeile der Datei zu allen ersten Spalten?

Tax: FOO BAR BAR 
MQ 292018,794;7841123,751;97,000 
MQ 293930,660;7841868,082;95,000 
MQ 295908,118;7842349,097;93,000 

Ich möchte in das ändern:

Tax: FOO BAR BAR;MQ 292018,794;7841123,751;97,000 
Tax: FOO BAR BAR;MQ 293930,660;7841868,082;95,000 
Tax: FOO BAR BAR;MQ 295908,118;7842349,097;93,000 

Ich denke SED oder AWK zu verwenden, es zu tun. Jeder hat eine Idee?

Antwort

4

awk Einzeiler:

awk 'NR==1{a=$0;next}{print a";"$0}' file 
+0

Vielen Dank, viel. – Orthophilos

2

Sie können die erste Zeile mit head greifen und dann sed verwenden, um die erste Zeile zu löschen und die erste Zeile Inhalt zu Beginn der restlichen Zeilen hinzufügen:

first_line=$(head -1 file) 
sed "1d;s/^/$first_line;/" file > file.modified 
+1

Sie müssen die '&' und die s zu entkommen Folgen '\ 1'. '\ 2' und so weiter von' $ first_line'. Andernfalls kann sed einen Syntaxfehler verursachen. – hek2mgl

1

Mit sed:

sed '1{h;d;};G;s/\(.*\)\n\(.*\)/\2 \1/' file 
Verwandte Themen