如何使用awk在一条线上切割图案

时间:2016-12-07 00:09:19

标签: shell awk sed

我在这样的文件中有多行:

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

想法是插入" size_cell"在每一行的前面,切掉最后一个斜线和字符,即" /Y",用括号括起来。 我想将其重新格式化为以下内容:

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

2 个答案:

答案 0 :(得分:1)

一个班轮

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

或者:

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

为你的榜样工作。

答案 1 :(得分: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