Você não precisa de grep
:
sed -i 's/ /\ /g' /path/to/test
Isso irá escapar todos os espaços no arquivo. Para escapar apenas de algumas cordas, veja a resposta do Guru.
Agora, se você quiser fazer isso em todos os arquivos que contenham um caractere de espaço em um determinado diretório:
grep -rl ' ' /path/to/test/dir | xargs sed -i 's/ /\ /g'
que é, agora eu percebo, idêntico à sua linha de comando, exceto o caractere após -r
, que deve ser um minúsculo L
.
(Nota: estou assumindo que as ferramentas GNU estão sendo usadas.)