Eu ofereço a função quotemeta
do Perl. Não bastante o que você pediu, porque ele escapa de espaços em vez de substituí-los por citações.
Mas, como benefício adicional, ele também lida com outros caracteres especiais (como *
):
perl -nle 'print quotemeta'
(Ou, como observado nos comentários, a forma mais curta: perl -ple '$_=quotemeta'
)
Que leva suas linhas e as transforma em:
line\ number\ 1
line\ number\ 2
line\ number\ 3
Qual deve ter o mesmo resultado - assim como o tratamento:
Line number \"'rm -rf *'\"
E semelhantes tais travessuras :)