Encontre e substitua texto em vários arquivos

Encontre e substitua texto em vários arquivos

Quero saber como posso encontrar e substituir um texto específico em vários arquivos, como no Notepad++ no tutorial vinculado.

por exemplo:http://cybernetnews.com/find-replace-multiple-files/

Responder1

Aqui eu uso sed para substituir cada ocorrência da palavra "cybernetnews" por "cybernet" em cada arquivo com a extensão c, no diretório /home/user/directory/.

find /home/user/directory -name \*.c -exec sed -i "s/cybernetnews/cybernet/g" {} \;

Uma variação mais genérica onde você pesquisa recursivamente no diretório de execução e opera apenas em arquivos regulares, legíveis e graváveis:

find ./ -type f -readable -writable -exec sed -i "s/cybernetnews/cybernet/g" {} \;

Responder2

O editor de stream, sed, é um utilitário poderoso para esse tipo de trabalho e é minha primeira escolha, porém, se você quiser fazer isso a partir de um editor de texto comum usando um aplicativo nativo baseado em Ubuntu, sugiro que você dê uma olhada em Jedit , Está disponível nos repositórios e pode ser instalado digitando em seu console:

sudo apt-get install jedit

Inicie o jedit, clique no item de menu de pesquisa, na lista do menu, clique no item Pesquisar no diretório, será apresentada a caixa de diálogo abaixo:

Caixa de diálogo Pesquisa Jedit na pasta

Isso é semelhante ao do Notepad++ e faz a mesma coisa, acredito que é isso que você deseja.

Responder3

Outra opção de GUI éregexer: captura de tela do regexxer

Responder4

Verificar comGeany, é o substituto perfeito do NPP para Linux. Você pode fazer exatamente isso e também usar regex.

informação relacionada