Com o GNU xargs :
ack -l --print0 foo | xargs -r0 rm --
O --print0 e xargs ' -0 do ack fazem com que ack e xargs escrevam e leiam usando o NUL como delimitador, o que garante o manuseio correto do nome do arquivo. Sem ele, xargs aceitará um intervalo muito maior de caracteres como um delimitador.