Может оказаться полезным при разработке регулярного выражения выводить только ту часть строки, которой фактически соответствует регулярное выражение , а не всю строку.Это поможет вам лучше понять, что делает ваше регулярное выражение.Вы можете сделать это с помощью специальной переменной $&
.Поэтому вместо:
echo "a=-1"|perl -nle 'if (/.*=[0-9]*/){print;}'
используйте
echo "a=-1"|perl -nle 'if (/.*=[0-9]*/){print $&;}'
Теперь вы получите другой вывод:
a=
И эта новая информация может дать вам преимущество впонимание того, как ваше регулярное выражение [неправильно] ведет себя в отношении входных данных.