sed

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

Como substituir várias linhas usando o comando 'sed'
Às vezes, requer a substituição de várias linhas de um arquivo por qualquer caractere ou texto específico. Existem diferentes comandos no Linux para substituir várias linhas de um arquivo. O comando 'sed' é um deles para fazer este tipo de tarefa. A forma completa do 'sed' é o Editor do Steam, e é usado principalmente para ler e converter o texto de diferentes maneiras usando uma expressão regular. Como este comando pode ser usado para substituir as várias linhas de um arquivo de diferentes maneiras são explicadas neste tutorial.

Folha de referências do 'sed' comumente usada:

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

Personagem Objetivo
uma É usado para anexar conteúdo.
b É usado para ramificar conteúdo.
c É usado para alterar o conteúdo.
d É usado para apagar uma linha de um arquivo.
D É usado para deletar a primeira linha de um arquivo.
g É usado para copiar do texto em espera.
G É usado para anexar do texto em espera.
h É usado para copiar no texto de exploração.
H É usado para anexar ao texto em espera.
eu É usado para inserção.
eu É usado para imprimir a linha substituta.
n É usado para ir para a próxima linha.
N É usado para acrescentar 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 gravar no arquivo.
C É usado para escrever uma linha no arquivo.
x É usado para trocar padrões e manter.
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 várias 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 do sed é o "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.

Suporta expressões regulares.

Exemplo-1: Substitua duas linhas consecutivas

O seguinte comando 'sed' irá 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.\ nÉ usado para texto
em processamento./ É uma ferramenta muito útil./ 'sed.TXT

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

Exemplo-2: Substitua várias linhas com base na correspondência e sinalizador global

O seguinte comando 'sed' irá substituir todas as linhas que começam com a palavra, 'Isto' pela palavra, 'Esta linha é substituída '.

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

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

Exemplo-3: Substitua várias linhas com base no comando de correspondência e próxima linha

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

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

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

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

Nos exemplos anteriores, os comandos 'sed' foram executados a partir do terminal. Mas é uma linguagem de script e, se o script contiver várias instruções, é melhor criar um arquivo sed com o script. Crie um arquivo de texto chamado alunos.TXT com o seguinte conteúdo no qual 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 com o nome de 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 houver correspondência, ele pesquisará novamente o número 35 e 15. Se a segunda correspondência existir no arquivo, ela será substituída 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 $ cat.TXT

O seguinte comando irá substituir o conteúdo de várias linhas baseado no script sed.

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

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

Conclusão

Diferentes maneiras de substituir várias linhas ou o conteúdo de 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'.

Melhores jogos para jogar com rastreamento manual
Oculus Quest introduziu recentemente a grande ideia de rastreamento manual sem controladores. Com um número cada vez maior de jogos e atividades que e...
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...