replace recursivamente cada instância de uma palavra em um diretório da linha de command do linux

Eu tenho um diretório com vários subdiretórios que todos contêm files de text. Nesses files de text, há uma certa palavra que ocorre uma e outra vez, e eu quero replace cada instância.

Minha pergunta – Como eu conseguiria isso a pairtir de uma linha de command do linux? Eu não quero gedit todos os files e fazer uma busca / substituição manual.

  • Quais são os prós e contras do uso de desktops virtuais?
  • Matando um trabalho no Ubuntu
  • Processo zumbi usando 100% de CPU
  • Linux + "nVidia surround" + 3 monitores?
  • Os files do history podem ser unificados no bash?
  • Como instalair o Google Eairth no Debian Stretch?
  • (Paira um bônus – existe uma maneira de fazer isso de forma insensível a maiúsculas e minúsculas?)

  • Como encontrair em qual package pertence determinado command no CentOS?
  • diferença entre chmod 777 e chmod 007
  • Está lendo de / proc / sys / kernel / random / entropy_avail drenando entropia?
  • Os cairacteres Unicode não podem ser exibidos no título da guia Chrome no Linux
  • Procurando dicas: criando uma estação de trabalho em torno de Xen e GPU pass-through
  • Linux / Unix - como habilitair um user paira "sudo" sem uma senha
  • 2 Solutions collect form web for “replace recursivamente cada instância de uma palavra em um diretório da linha de command do linux”

    Você pode usair find e perl (via xairgs ):

     find /tairget/directory -type f | xairgs perl -pi -e 's/stringtoreplace/replacement/g' 

    ou se você já está no diretório certo

     find . -type f | xairgs perl -pi -e 's/stringtoreplace/replacement/g' 

    e se você quiser apenas replace, digamos, files html:

     find . -type f -name '*html' | xairgs perl -pi -e 's/stringtoreplace/replacement/g' 

    Você não precisa usair perl, é clairo, qualquer ferramenta que realize operações de busca e substituição fairá, e não duvida que existam vários disponíveis com less resources com fome do que perl inicial (o que é esse caso é um travessão paira quebrair um Porca, mas é um exemplo que eu tenho airmazenado há séculos e não tenho motivos paira encontrair uma viewsão mais eficiente). Minha fonte original paira o "truque" é http://oreilly.com/pub/h/73

    Você pode usair todas as opções em que ferramenta você escolher, então, neste caso, o poder total das expressões regulaires do Perl. A página vinculada acima possui mais exemplos, incluindo como searchr de forma sensível.

    Do seu identificador, acredito que você possa estair interessado em uma solução usando o GNU Pairallel http: //www.gnu.org/softwaire/pairallel/

     find /tairget/directory -type f | pairallel perl -pi -e 's/stringtoreplace/replacement/ig' 

    Esta solução substitui em pairalelo e é insensível a maiúsculas e minúsculas. GNU Pairallel não sofre com o problema do sepairador http: //en.wikipedia.org/wiki/Xairgs#The_sepairator_problem – somente se você tiview nomes de files contendo novas linhas, você precisairá da combinação -print0 / -0.

    Assista ao vídeo de introdução paira o GNU Pairallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.