Procura por / e substitui por \ /

0

Isso pode ser simples, mas eu tenho algum texto

Aasfdsajdf / safdhglah (como exemplo)

e eu quero que seja

Aasfdsajdf \ / safdhglah

Eu tentei várias opções de sed, mas ainda assim encontrei algo que fornecesse o resultado correto. Qualquer sugestão, por favor.

    
por tractor boy 18.07.2018 / 15:08

3 respostas

2

Você precisa escapar de caracteres especiais como / e \ prefixando-os com \

sed 's/\//\\//g' <file>

Você pode procurar aqui para obter detalhes sobre o sed guide

    
por 18.07.2018 / 15:19
1
echo "Aasfdsajdf/safdhglah" |sed 's/\//\\//g'
    
por 18.07.2018 / 15:19
1

O comando sed ("substitute") do utilitário s pode fazer isso usando

sed 's#/#\/#g'

Então,

echo 'Aasfdsajdf/safdhglah' | sed 's#/#\/#g'

produziria

Aasfdsajdf\/safdhglah

Os # na expressão sed são os delimitadores que geralmente são gravados como / . Como estamos lidando com a substituição de / aqui, usamos outro delimitador para evitar a síndrome do palito inclinado .

Se você estiver usando bash e tiver a string em uma variável, então você pode usar

string='Aasfdsajdf/safdhglah'
printf '%s\n' "${string////\/}"

para obter o mesmo resultado. Aqui usamos ${string//word/replacement} com word sendo / e replacement sendo \/ (ou seja, um literal \ e um / , assim como na sed de substituição).

    
por 18.07.2018 / 16:54

Tags