sed

Como inserir uma linha após a correspondência usando 'sed'?

Como inserir uma linha após a correspondência usando 'sed'?

Um dos comandos úteis e poderosos do Linux é o comando “sed”. Este comando é usado para realizar diferentes tipos de tarefas no Linux, como inserir, atualizar e deletar um determinado texto ou linha com base na correspondência. Você pode inserir um texto em uma string ou arquivo de diferentes maneiras usando o comando “sed”.

Como inserir uma linha depois de encontrar uma correspondência em uma string ou uma linha é mostrado neste tutorial.

Insira uma linha na string

Uma nova linha pode ser inserida após qualquer valor da string usando o comando "sed" se o padrão definido no comando corresponder a qualquer parte do valor da string.

O exemplo a seguir mostra como uma nova linha pode ser adicionada após um valor de string se uma determinada string existir em qualquer lugar no valor da string.

Exemplo-1: insira uma linha em uma string depois de encontrar uma correspondência

O comando a seguir pesquisará “inng” na string, “I like programming” e uma linha de texto, “Você gosta de programação?”Será inserido após a string se a string de pesquisa existir.

Aqui, o caractere “&” é usado para inserir a linha após a string.

$ echo "Eu gosto de programação."| sed 's / inng / & Você gosta de programação?/ '

A seguinte saída mostra que “inng” não existe na string e nenhuma linha é inserida após a string.


O seguinte comando irá pesquisar “ing.”Na string,“ Eu gosto de programar ”e existe na string.

$ echo "Eu gosto de programação."| sed 's / ing./ & Você gosta de programação?/ '

A saída a seguir mostra que a nova linha é adicionada após a string.

Insira uma linha em um arquivo

Existem duas maneiras de inserir uma linha depois que uma correspondência for encontrada em um arquivo que é mencionado abaixo. Quando o comando “sed” é usado sem a opção “-i”, então o conteúdo do arquivo permanecerá inalterado, e a saída mostrará o conteúdo do arquivo com a nova linha inserida. Você deve usar a opção “-i” com o comando “sed” para inserir a nova linha permanentemente no arquivo se o padrão correspondente existir no arquivo.

UMA. Usando “a” no comando “sed”

O “a” pode ser usado no padrão de pesquisa do “sed” para anexar uma ou mais linhas em um arquivo após a linha onde o padrão de pesquisa corresponde ou após um número de linha particular.

B. Usando “i” no comando “sed”

O “i” pode ser usado no padrão de pesquisa do comando “sed” para inserir uma ou mais linhas em um arquivo antes da linha onde o padrão de pesquisa corresponde.

Insira linha (s) em um arquivo com base no padrão:

Crie um arquivo de texto delimitado por tabulação chamado produtos.TXT com o seguinte conteúdo para mostrar os usos da sinalização acima no comando “sed”.

produtos.TXT

ID Nome
01 chantilly
02 Cacau em Pó
03 Açucar
04 Ovo
05 Farinha

Exemplo-2: Insira uma linha após um número de linha específico usando o “a”

Os comandos a seguir mostram como uma nova linha pode ser adicionada, após um determinado número de linha dos produtos.arquivo txt, com base no padrão usado no comando “sed”.

Aqui, o primeiro comando mostrará o conteúdo existente do arquivo. O comando “sed” anexará o texto “b01 Fermento em pó”, após as duas primeiras linhas do arquivo. O último comando é usado para verificar se o conteúdo do arquivo foi alterado ou não.

produtos $ cat.TXT
$ sed '2 a b01 \ tPó para cozimento' produtos.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução do comando acima.

Exemplo-3: Insira uma linha após a última linha usando o “a”

O seguinte comando mostra a maneira de acrescentar uma nova linha após a última linha do arquivo. O primeiro e último comando mostra o conteúdo existente do arquivo antes e depois de executar o comando “sed”. O símbolo “$” é usado no padrão do comando “sed” para mencionar a última linha do arquivo.

produtos $ cat.TXT
$ sed '$ a b01 \ tPó para cozimento' produtos.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução do comando acima.

Exemplo 4: Insira uma linha em qualquer lugar do arquivo depois de corresponder a um padrão usando o “a”

O seguinte comando “sed” mostra como uma nova linha pode ser adicionada em qualquer lugar no arquivo com base no padrão correspondente. O padrão usado no comando “sed” irá pesquisar qualquer linha começando com “s01”, e adicionar a nova string depois dela. A quarta linha do arquivo começa com “s01”, e a nova linha será inserida após essa linha.

produtos $ cat.TXT
$ sed '/ ^ s01.* / a b01 \ t Produtos em pó para cozimento.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução do comando.


O seguinte comando “sed” irá pesquisar qualquer linha que termine com “Powder” e inserir a nova linha depois dela. A terceira linha do arquivo termina com “Pó”. Então, a nova linha será inserida após essa linha.

produtos $ cat.TXT
$ sed '/ Pó $ / a b01 \ t Produtos para cozimento em pó'.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução dos comandos acima.

Exemplo 5: Insira várias linhas após o padrão de correspondência usando “a”

O seguinte comando “sed” mostra a maneira de adicionar várias linhas dentro do conteúdo de um arquivo com base no padrão correspondente.

Aqui, duas linhas serão adicionadas após a terceira linha, de acordo com o padrão.

produtos $ cat.TXT
$ sed '/ ^ [a-c] / a b01 \ tPó de cozimento \ nb02 \ tProdutos para cozimento de refrigerante.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução dos comandos acima.

Exemplo-6: Insira uma linha após combinar um padrão usando o “I”

produtos $ cat.TXT
$ sed '/ creme / i b01 \ tPó para cozimento' produtos.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução dos comandos acima.

Exemplo-7: Insira uma linha permanentemente após o padrão de correspondência usando a opção “-i”

O seguinte comando “sed” mostra como alterar o conteúdo do arquivo permanentemente. A opção “i” é usada com o comando “sed” para inserir uma nova linha no arquivo com base no padrão.

produtos $ cat.TXT
$ sed -i '/ e $ / a g01 \ tGhee' produtos.TXT
produtos $ cat.TXT

A seguinte saída aparecerá após a execução dos comandos acima.

Conclusão:

As formas de inserir duas ou mais linhas em um arquivo usando o comando “sed” com padrão foram mostradas neste tutorial para ajudar o leitor a aplicar este comando para inserir linhas no arquivo temporária ou permanentemente com base no padrão.

Como mostrar a sobreposição de OSD em aplicativos e jogos Linux em tela cheia
Jogar jogos em tela cheia ou usar aplicativos em modo de tela cheia sem distração pode cortar você das informações relevantes do sistema visíveis em u...
Top 5 cartas de captura de jogos
Todos nós vimos e amamos streaming de jogos no YouTube. PewDiePie, Jakesepticye e Markiplier são apenas alguns dos melhores jogadores que ganharam mil...
Como desenvolver um jogo no Linux
Uma década atrás, poucos usuários de Linux preveriam que seu sistema operacional favorito um dia seria uma plataforma de jogos popular para videogames...