2016-12-07 2 views
-2

Ich habe mehrere Zeilen in einer Datei wie folgt aus:Wie awk verwenden Muster in einer Linie zu hacken

u_top/cell_u0/Y (INV) 
u_top/cell_u3/A (AND) 
u_top/cell_u32/B (BUF) 

Idee ist „size_cell“ vor jeder Zeile, hacken die letzte Schrägstrich und Zeichen einfügen rechts nach ihm zB "/Y", Klammer hacken. ich möchte es neu zu formatieren auf die folgenden:

size_cell u_top/cell_u0 INV 
size_cell u_top/cell_u3 AND 
size_cell u_top/cell_u32 BUF 
+3

Sie könnten versuchen, 'awk' und' sed' Tags hinzuzufügen - und zeigen, was Sie bisher geschafft haben. –

+0

Wenn eine der folgenden Antworten Ihnen bei Ihrem Ziel geholfen hat, akzeptieren Sie bitte/upvote die Antwort für die Schließung, indem Sie neben der Antwort das richtige Zeichen ankreuzen. @ Bryan –

Antwort

0
awk '{$0="size_cell " $0} {split($2,a,"/"); $2=a[1] "/" a[2] ;gsub(/\(|\)/,"",$3)}1' tag 
size_cell u_top/cell_u0 INV 
size_cell u_top/cell_u3 AND 
size_cell u_top/cell_u32 BUF 
1

One-Liner

awk -F' ?[()]' '{sub(/\/[^/]*$/,"",$1)}$1="size_cell" OFS $1' file 

Oder:

awk -F'/[^/]* *[(]|[)]' '$1="size_cell" OFS $1' file 

Arbeit für Ihr Beispiel.

Verwandte Themen