Esta pergunta já tem respostas aqui :

Comentários

  • Você quer sed, não grep. Além disso, você ' está usando aspas " inteligentes ", então o grep pesquisará o string literal “string”, incluindo as aspas. Você deseja "string" (ou provavelmente ainda melhor, 'string', a menos que planeje usar a expansão de parâmetro no termo de pesquisa).
  • grep isn ' t usado para substituir strings. É ' é usado para localizar strings. Para substituí-los, você precisa de sed ou awk.
  • Seria algo como
  • sed –recursive –ignore-case " string ", " substituição -string "
  • Relacionado: pesquise e substitua usando grep (não sed) – no entanto você poderia usar grep --recursive --files-with-matches para construir uma lista de nomes de arquivo a serem passados para sed

Resposta

Tente este comando

grep -rl "wavbyte" somedir/ | xargs sed -i "s/wavbyte/gitship/g" 

Você pode tente find e sed

find /some_path -type f -exec sed -i "s/oldstring/newstring/g" {} \; 

Comentários

  • Devo substituir " matchstring " pela string nova ou antiga e se eu quiser fazer a partir do diretório raiz do servidor?
  • Por exemplo, se eu estiver substituindo " wavbyte " com " gitship " de o diretório raiz do servidor Ubuntu seria:
  • find / -type f -exec sed -i ' s / wavbyte / gitship / g ' {} \;
  • Certo, mas o wavbyte está em muitos lugares diferentes no servidor. Como vou memorizar todos esses locais e, em seguida, ir manualmente e mudar para gitship?
  • Vamos continuar essa discussão no chat .

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *