Como usar o comando sed para substituir a string nos arquivos
- 2170
- 629
- Mrs. Christopher Okuneva
Você já teve uma situação em que precisa substituir uma palavra ou frase em muitos arquivos? Você pode copiar e colá -lo, ou talvez exista um script existente que possa fazer o trabalho. Mas que tal se você só precisa substituí -lo por outra palavra ou frase em outro lugar? Você pode usar o encontro, mas isso seria muito genérico e exigirá escrever um script para esta tarefa. E se você nem souber que palavra ou frase você deve encontrar e substituir? Que tal usar sed então? Se você não está familiarizado com a linha de comando Unix, sed é um editor de fluxo. É um editor de texto simples que lê a partir de entrada padrão e executa operações de edição no fluxo à medida que é lido. É comumente usado para pesquisa e substituição da funcionalidade em scripts.
Neste artigo, mostraremos alguns exemplos de como usar o SED para executar a pesquisa e substituir o texto em arquivos.
Encontre e substitua a string nos arquivos
Se você só precisar executar uma pesquisa e substituição simples, poderá usar a seguinte sintaxe:
sed -i 's/string_to_find/string_to_replace/' file1 file2 filen
Aqui:
- -eu: Este sinalizador indica que seu arquivo de entrada deve ser um dos arquivos especificados após o comando.
- string_to_find: Esta é a string que você deseja pesquisar nos arquivos.
- String_to_replace: Esta é a string que você deseja substituir a string what_to_find dentro dos arquivos.
- FILE1 FILE2 FILEN: Esta é a lista de arquivos que o SED pesquisará e substituirá.
O comando a seguir procurará todas as cordas “olá” no Bem-vindo.TXT
arquivo. Em seguida, substitua -o por uma nova string "Howdy" no mesmo arquivo.
sed -i 's/hello/Howdy/g' bem -vindo.TXT
Você também pode criar um backup do arquivo original antes de fazer alterações com -eu
seguido de alguma extensão. Por exemplo:
sed -i.Backup 's/hello/Howdy/g' bem -vindo.TXT
Isso criará um arquivo bem -vindo.TXT.Backup no diretório atual com o conteúdo original do arquivo.
Substitua recursivamente o texto em vários arquivos
O comando a seguir é útil para substituir strings em vários arquivos de uma só vez em um diretório /opt /docs. Aqui, o encontro navegará para todos os arquivos no diretório definido e executará o comando sed um por um.
encontre/opt/docs/-type f -exec sed -i 's/hello/Howdy/g' ;
Substitua o texto sem afetar o arquivo original
Se você não deseja fazer alterações no seu arquivo original e criar novos arquivos com seqüências alteradas, use o seguinte comando.
sed 's/hello/Howdy/g' bem -vindo.txt> Welcome_2.TXT
Este comando criará um novo arquivo Bem -vindo_2.TXT
com texto modificado. O arquivo original permanece inalterado.
Conclusão
Um comando sed é uma ferramenta poderosa que pode ser usada para editar o texto em arquivos. É útil quando você tem uma situação em que precisa encontrar e substituir uma string em muitos arquivos. Você poderia usar o encontro, mas isso seria muito genérico e exigirá escrever um script. E se você nem souber que palavra ou frase você deve encontrar e substituir? Usar sed é uma solução melhor.
- « Como alterar o documento Raiz do domínio primário em WHM/CPALEL
- Como configurar privilégios sudo para usuário no Linux »