我有这样的信号
signal[3]_and_[31]
signal[3]_and_[30]
signal[3]_and_[29]
signal[3]_and_[28]
...
signal[3]_and_[0]
signal[2]_and_[31]
signal[2]_and_[30]
signal[2]_and_[29]
signal[2]_and_[28]
...
signal[2]_and_[0]
..
...我想把它转换成
signal[3:0]_and_[31:0]帮助感激。
发布于 2020-05-22 03:22:20
假设每比特有一行该死的信号,我们运行下面的Perl代码并将其转换为相应的总线符号。
perl -MList::Util=max,min -lne '
BEGIN {
$sig_re = qr/signal\[(\d+)]_and_\[(\d+)]/;
$bus_fmt = q/signal[%d:%d]_and_[%d:%d]/;
}
/^$sig_re$/ and push(@A,$1), push(@B,$2);
print(sprintf($bus_fmt,
max(@A), min(@A),
max(@B), min(@B)))
if eof;
' signals.bit_blasted > signals.bussed发布于 2020-05-22 21:59:30
$ echo 'signal[3]_and_[31]' | awk -F'[][]' '{ print "signal[" $2 ":0]_and_[" $4 ":0]"; }'
signal[3:0]_and_[31:0]https://unix.stackexchange.com/questions/588225
复制相似问题