Como substituir várias linhas usando o comando 'sed'

Como substituir várias linhas usando o comando 'sed'
Às vezes, é necessário substituir várias linhas de um arquivo por qualquer caractere ou texto em particular. Comandos diferentes existem no Linux para substituir várias linhas de um arquivo. O comando 'sed' é um deles para fazer esse tipo de tarefa. A forma completa de 'sed' é o Steam Editor e é usado principalmente para ler e converter o texto de maneiras diferentes usando uma expressão regular. Como esse comando pode ser usado para substituir as múltiplas linhas de um arquivo de maneiras diferentes são explicadas neste tutorial.

Folha de dicas "sed" comumente usada:

Os caracteres mais usados ​​usados ​​no comando 'sed' são explicados na tabela a seguir.

Personagem Propósito
a É usado para anexar conteúdo.
b É usado para ramificação de conteúdo.
c É usado para mudar de conteúdo.
d É usado para excluir uma linha de um arquivo.
D É usado para excluir a primeira linha de um arquivo.
g Costumava copiar do texto de retenção.
G É usado para anexar o texto de retenção.
h É usado para copiar no texto de retenção.
H É usado para anexar o texto de retenção.
eu É usado para inserção.
EU É usado para imprimir a linha substituta.
n É usado para ir para a próxima linha.
N É usado para anexar a próxima linha de entrada.
p É usado para imprimir.
P É usado para imprimir a primeira linha.
q É usado para sair.
Q É usado para sair imediatamente.
r É usado para ler o arquivo.
R É usado para ler a linha do arquivo.
s É usado para substituir.
t É usado para testar a substituição.
T É usado para testar sem substituição.
c É usado para escrever no arquivo.
C É usado para escrever uma linha para o arquivo.
x É usado para trocar padrões e segurar.
y É usado para traduzir.
z É usado para limpar a linha.
'=' É usado para imprimir o número da linha.

Substitua várias linhas usando o comando 'sed' do terminal:

Como o comando 'sed' pode ser usado para substituir as múltiplas linhas de um arquivo do terminal é mostrado nesta parte deste tutorial. Crie um arquivo chamado sed.TXT com o seguinte conteúdo teste os comandos desta parte.

sed.TXT

A forma completa de sed é "editor de fluxo".

É um utilitário Unix usado para ler e converter o texto em um formato diferente.

Foi desenvolvido por Lee E. McMahon.

É usado para processamento de texto.

Ele suporta expressões regulares.

Exemplo 1: substitua duas linhas consecutivas

O comando 'sed' a seguir substituirá duas linhas consecutivas por outra linha. Aqui, a opção -z é usada para substituir as linhas consecutivas por dados nulos antes de adicionar o texto de substituição. De acordo com o comando, o 3rd e 4º Linhas do arquivo serão substituídas pelo texto, 'É uma ferramenta muito útil'.

$ cat sed.TXT
$ sed -z 's/foi desenvolvido por Lee E. McMahon.\ nit é usado para texto
em processamento./É uma ferramenta muito útil./'sed.TXT

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

Exemplo-2: substitua várias linhas com base em Match e Global Flag

O comando 'sed' a seguir substituirá todas as linhas que começarão pela palavra, 'Isto' pela palavra, 'Esta linha é substituída '.

$ cat sed.TXT
$ sed 's/^it.*/Esta linha é substituída/g 'sed.TXT

A saída a seguir aparecerá após a execução dos comandos. Três linhas contêm a palavra 'Isto'No arquivo. Então, essas linhas foram substituídas pelo texto de reposição.

Exemplo 3: Substitua várias linhas com base no comando de partida e próxima linha

O seguinte comando 'sed' substituirá a palavra 'é'pela palavra'era'Com o comando da próxima linha,' n '.

$ cat sed.TXT
$ sed 'n;/is/s/is/was/' sed.TXT

A saída a seguir aparecerá após a execução dos comandos. Aqui, 'é' existe no 2nd e 4º linhas do arquivo, e essas linhas são modificadas pela palavra 'era'.

Substitua várias linhas criando o arquivo de script 'sed':

Nos exemplos anteriores, os comandos 'sed' foram executados do terminal. Mas é uma linguagem de script e, se o script contiver várias declarações, é melhor criar um arquivo sed com o script. Crie um arquivo de texto chamado alunos.TXT com o seguinte conteúdo em que o script 'sed' será aplicado.

alunos.TXT

ID: 111045
Nome: Robert
Departamento: CSE
Lote: 35
ID: 111876
Nome: Joseph
Departamento: BBA
Lote: 27
ID: 111346
Nome: William
Departamento: CSE
Lote: 45
ID: 111654
Nome: Charles
Departamento: EEE
Lote: 41
ID: 111346
Nome: John
Departamento: CSE
Lote: 25
ID: 111746
Nome: Thomas
Departamento: CSE
Lote: 15

Exemplo-4: substitua várias linhas de um arquivo usando o arquivo de script 'sed'

Crie um arquivo sed nomeado para substituir.sed com o seguinte conteúdo para substituir as várias linhas com base no padrão de pesquisa. Aqui, a palavra 'CSE'Será pesquisado no arquivo de texto e, se a correspondência existir, ele pesquisará novamente o número 35 e 15. Se a segunda partida existir no arquivo, ele será substituído pelo número 45.

substituir.sed

/ Cse/
p; n;
/ 35/
s/35/45/;
p; d;

/ 15/
s/15/55/;
p; d;


p;

Execute o seguinte comando para verificar o conteúdo existente do arquivo. 'CSE' apareceu quatro vezes no arquivo de texto. 35 e 15 existem em dois lugares.

$ estudantes de gato.TXT

O comando a seguir substituirá o conteúdo das várias linhas com base no script SED.

$ sed -n -f substituir.estudantes sed.TXT

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

Conclusão

Diferentes maneiras de substituir várias linhas ou o conteúdo das várias linhas usando o comando 'sed' foram mostradas neste tutorial. Como o script 'sed' pode ser executado a partir de um arquivo sed também é mostrado neste tutorial. Espero que este tutorial ajude o leitor a substituir várias linhas de qualquer arquivo usando o comando 'sed'.