![名称[3:0]总线与单独电线的分离](https://linux22.com/image/122174/%E5%90%8D%E7%A7%B0%5B3%3A0%5D%E6%80%BB%E7%BA%BF%E4%B8%8E%E5%8D%95%E7%8B%AC%E7%94%B5%E7%BA%BF%E7%9A%84%E5%88%86%E7%A6%BB.png)
我有如下所示的数据
A[3:0] INPUT
B[3:0] OUTPUT
现在我想要如下所示的数据:
A[3] INPUT
A[2] INPUT
A[1] INPUT
A[0] INPUT
B[3] OUTPUT
B[2] OUTPUT
B[1] OUTPUT
B[0] OUTPUT
有什么帮助吗?
答案1
awk方法:
awk '{ split($1,a,/[\[:]/); d=a[2]+1; while(d--) printf "%s[%d] %s\n",a[1],d,$2 }' file
输出:
A[3] INPUT
A[2] INPUT
A[1] INPUT
A[0] INPUT
B[3] OUTPUT
B[2] OUTPUT
B[1] OUTPUT
B[0] OUTPUT