[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