Como uso o sed para substituir um único '?

0

Eu preciso substituir '30 por '30 em vários arquivos. O seguinte não funciona:

grep -Rl "'30"  /myDir | xargs  sed -i "s/'30/'30/g"

Como faço para corrigir isso?

Eu estou em uma máquina Fedora 26.

    
por mario 12.09.2018 / 17:00

2 respostas

3

Basta adicionar uma barra invertida antes do backtick:

grep -Rl "'30" /myDir | xargs  sed  "s/'30/\'30/g"
    
por 12.09.2018 / 17:12
0
find /myDir -maxdepth 1 -type f -exec grep -q \'30 {} \; -exec sed -i -e y/\'/\'/ {} +

Aqui, você permite que find filtre os arquivos, no diretório /myDir , que carrega a string '30 e passe apenas, em um grupo, para sed, which'll do an in-place editing -i 'neles.

    
por 13.09.2018 / 06:09

Tags