Substituir o espaço literal pelo espaço regex

1

Eu quero mudar uma string de

This is a string

para

This\sis\sa\sstring

mas tr não está funcionando para mim, não importa se eu escape do \ ou não

string="This is a string"
regex=$(echo "$string" | tr " " "\s")
printf "$regex"

Acabei de receber

Thississasstring
    
por myol 13.04.2018 / 04:37

1 resposta

4

A principal questão com a sua abordagem, eu acho, é que tr translitera único caracteres - por isso, mesmo se você citar com sucesso '\s' , não vai funcionar do jeito que você quer provavelmente apenas substitua o espaço por \ ).

Nesse caso, você não precisa de utilitários externos:

string="This is a string"
echo "${string// /\s}"
This\sis\sa\sstring
    
por 13.04.2018 / 05:02