[sisyphus] awk bug?
Alexey Gladkov
=?iso-8859-1?q?legion_=CE=C1_altlinux=2Eru?=
Пн Окт 11 18:32:26 MSD 2004
Peter V. Saveliev wrote:
> ...
>
> Пример странного поведения awk:
>
> [peet на acer rt-network]$ echo "interface ethernet 0" | awk '{gsub(/ethernet[[:blank:]]+([0-9]+)/,"eth\1"); print $0}'
> interface eth
> [peet на acer rt-network]$ echo "interface ethernet 0" | awk '{gsub(/ethernet[[:blank:]]+([0-9]+)/,"eth\\1"); print $0}'
> interface eth\1
> [peet на acer rt-network]$ echo "interface ethernet 0" | awk '{print gensub(/ethernet[[:blank:]]+([0-9]+)/,"eth\1","g")}'
> interface eth
> [peet на acer rt-network]$ echo "interface ethernet 0" | awk '{print gensub(/ethernet[[:blank:]]+([0-9]+)/,"eth\\1","g")}'
> interface eth0
>
А что не нравиться в приведенном выводе ? все правильно.
> Кто что может сказать на эту тему? Или "очередное злодейство в виде расширения gnu"
> отключили, мол, ну никак не должен awk оперировать бэкреференсами в gsub? ;)
>
gsub не умел пользоваться \n . Функция gensub - это gnu'шное
расширение и оно нормально работает. Так что никто ничего не выключал.
> Вешать багу? Или само срастётся?
В 'man awk' все четко описано по этому поводу. Так что этот баг не в gawk.
--
Rgrds, legion
Подробная информация о списке рассылки Sisyphus