Como usar o comando sed para substituir uma string em um arquivo

Como usar o comando sed para substituir uma string em um arquivo

A forma completa do comando "sed" é um editor de fluxo. Este comando é um comando muito poderoso do sistema operacional Linux e é usado para vários propósitos. Um dos usos comuns deste comando é encontrar e substituir um ou mais valores de string de um arquivo. O conteúdo específico de um arquivo pode ser substituído por este comando sem abrir o arquivo. O comando "sed" suporta expressão regular. O valor específico da string pode ser pesquisado dentro de um arquivo com base na expressão regular que é definida com este comando. As diferentes maneiras de pesquisar e substituir a string específica em um arquivo usando o comando "sed" são mostradas neste tutorial.

Sintaxe:

A sintaxe do comando "sed" para pesquisar e substituir a string de um arquivo é dada da seguinte forma:

sed -i "s/search/substituir" nome do arquivo


Aqui, a opção "i" é usada para substituir o conteúdo do arquivo original se a palavra de pesquisa for encontrada. O "s”Comando indica o substituto que pesquisa a string específica e substitui a string por outra string se a palavra de pesquisa existir no arquivo. O nome do arquivo contém o nome de qualquer nome de arquivo existente onde a pesquisa e a substituição sejam feitas.

Diferentes exemplos de comandos "sed"

As diferentes maneiras de pesquisar e substituir as strings em um arquivo são mostradas nesta parte do tutorial. Crie um arquivo de texto chamado alunos.txt pelo conteúdo a seguir em que a tarefa de pesquisa e substituição é realizada usando o comando "sed":

alunos.TXT


MD. Hossain: CSE: Lote-50: Semestre-10

Nibir Rahman: CSE: Lote-51: Semestre-9

Mehnaz Kazi: CSE: Lote-52: Semestre-8

Exemplo 1: substitua todas as ocorrências da string sem alterar o arquivo

O método de substituir uma string específica em um arquivo com base na correspondência exata da sequência de pesquisa é mostrada neste exemplo.

Execute o seguinte comando para verificar o conteúdo dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Execute o seguinte comando para pesquisar a palavra "CSE" nos alunos.Arquivo TXT e substitua todas as ocorrências desta string usando "BBA":

$ sed 's/cse/bba/' estudantes.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores:


Exemplo 2: substitua permanentemente todas as ocorrências da string no arquivo

O método de substituir permanentemente uma string específica em um arquivo com base na sequência de pesquisa é mostrada neste exemplo.

Execute o seguinte comando para verificar o conteúdo dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Execute o seguinte comando para pesquisar a palavra "lote" nos alunos.Arquivo TXT e substitua todas as ocorrências dessa string no arquivo usando permanentemente "lote":

$ sed -i 's/lote/lote/i' alunos.TXT


Execute o seguinte comando para verificar o conteúdo atualizado dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores:


Exemplo 3: substitua a ocorrência específica da string no arquivo

O método de substituir uma sequência específica de uma ocorrência específica em um arquivo com base na correspondência exata da sequência de pesquisa é mostrada neste exemplo:

Execute o seguinte comando para verificar o conteúdo dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Execute o seguinte comando para pesquisar a palavra "0" nos alunos.Arquivo TXT e substitua todas as ocorrências dessa string no arquivo usando "1":

$ sed 's/0/1/' alunos.TXT


Execute o seguinte comando para pesquisar a palavra "0" nos alunos.Arquivo TXT e substitua a segunda ocorrência dessa string no arquivo usando "1":

$ sed 's/0/1/2' alunos.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores:


Exemplo 4: Imprima as linhas substituídas do arquivo duas vezes

O método de substituir uma string específica em um arquivo com base na correspondência exata da sequência de pesquisa e a impressão de cada linha substituída duas vezes é mostrada neste exemplo.

Execute o seguinte comando para verificar o conteúdo dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Execute o seguinte comando para pesquisar a palavra "lote" nos alunos.Arquivo TXT e substitua todas as ocorrências dessa string no arquivo usando "lote" e imprima as linhas substituídas duas vezes:

$ sed 's/lote/lote/p' estudantes.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores:


Exemplo 5: substitua a sequência da linha específica do arquivo

O método de substituir uma sequência específica de uma linha específica em um arquivo com base na sequência de pesquisa é mostrada neste exemplo.

Execute o seguinte comando para verificar o conteúdo dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Execute o seguinte comando para pesquisar a palavra "lote" nos alunos.Arquivo TXT e substitua a ocorrência desta string na segunda linha do arquivo usando "lote":

$ sed '2 s/lote/lote/i' estudantes.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores:


Exemplo 6: substitua a string da gama específica de linhas do arquivo

O método de substituir uma string específica na gama específica de linhas de um arquivo com base na sequência de pesquisa é mostrada neste exemplo.

Execute o seguinte comando para verificar o conteúdo dos alunos.Arquivo TXT:

$ estudantes de gato.TXT


Execute o seguinte comando para pesquisar a palavra "lote" nos alunos.Arquivo TXT e substitua a ocorrência desta string da primeira à segunda linha do arquivo usando "lote":

$ sed '1,2 s/lote/lote/' estudantes.TXT


Saída:

A saída a seguir aparece após a execução dos comandos anteriores:

Conclusão

O comando "sed" é um comando muito útil do Linux para fazer a pesquisa e substituir a tarefa. Isso facilita a substituição do conteúdo de um arquivo, usando diferentes padrões de pesquisa. Os usos do comando "sed" para substituir o conteúdo de um arquivo com base na correspondência exata, no número de ocorrências de pesquisa ou no número da linha são mostrados aqui por vários exemplos. Esperamos que os usuários do Linux possam usar o comando "sed" para substituir o conteúdo do arquivo depois de ler este tutorial corretamente.