Separación del nombre [3:0] bus ito cable individual

Separación del nombre [3:0] bus ito cable individual

Tengo datos como los que se muestran a continuación.

A[3:0] INPUT
B[3:0] OUTPUT

Ahora quiero datos como se muestra a continuación:

A[3] INPUT
A[2] INPUT
A[1] INPUT
A[0] INPUT
B[3] OUTPUT
B[2] OUTPUT
B[1] OUTPUT
B[0] OUTPUT

¿Alguna ayuda?

Respuesta1

awkacercarse:

awk '{ split($1,a,/[\[:]/); d=a[2]+1; while(d--) printf "%s[%d] %s\n",a[1],d,$2 }' file

La salida:

A[3] INPUT
A[2] INPUT
A[1] INPUT
A[0] INPUT
B[3] OUTPUT
B[2] OUTPUT
B[1] OUTPUT
B[0] OUTPUT

información relacionada