В BRE
(базовое регулярное выражение) для буквальной обработки необходимо экранировать только шесть символов: ^$.*\[
.
Кроме того, вам необходимо экранировать &
в части REPLACEMENT
s
команда в sed
, потому что &
имеет особое значение совпадающей части в PATTERN
.
В результате вы можете сказать что-то вроде:
#!/usr/bin/tclsh
set file {yourfilename}
exec /bin/sed -i {s/(ch0_prbs_match_dual3_int & ch0_prbs_match_dual2_int & ch0_prbs_match_dual1_int & ch0_prbs_match_int) & ( ch1_prbs_match_dual3_int & ch1_prbs_match_dual2_int & ch1_prbs_match_dual1_int & ch1_prbs_match_int);/ch0_prbs_match_int \& ch1_prbs_match_int;/} $file
, которыйизменяет $file
как:
prbs_match_out <= ch0_prbs_match_int & ch1_prbs_match_int;