Оболочка интерпретирует !
в вашем вводе как подстановку команды:
$ ack-grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ !ac
ack-grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$
Вы должны указать оболочке, что !
не имеет особого значения;Есть два способа сделать это:
ack-grep "paypal_responded(?\!_at)"
ack-grep "paypal_responded\(?\!_at\)"
или
ack-grep 'paypal_responded(?!_at)'
Single-к строкам в кавычках применяется меньше преобразований:
$ ack-grep "s\!" /etc/passwd
$ ack-grep 's!' /etc/passwd
$