![名前[3:0]バスを個々の配線に分離](https://rvso.com/image/122174/%E5%90%8D%E5%89%8D%5B3%3A0%5D%E3%83%90%E3%82%B9%E3%82%92%E5%80%8B%E3%80%85%E3%81%AE%E9%85%8D%E7%B7%9A%E3%81%AB%E5%88%86%E9%9B%A2.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