▷ Como usar o comando SED no Linux - EXEMPLOS

O Linux é um sistema repleto de comandos onde cada um desempenha um papel essencial no comportamento de determinadas tarefas, sejam elas de usuário, objeto ou gerenciamento de suporte, cada comando tem sua participação no Linux e um desses comandos é o Sed de que falaremos na Solvetic em detalhes.

Qual é o comando sed no LinuxO comando sed é literalmente um editor de fluxo que podemos usar para modificar trabalhos no texto com funções básicas em um fluxo de entrada de um arquivo ou entrada de um pipeline, se aplicável.

Ao contrário de outros editores de texto, com o sed é possível filtrar o texto em um pipeline à medida que examinamos o conteúdo selecionado.

VantagemAs vantagens de usar sed no Linux são:

  • Podemos selecionar o texto
  • Podemos substituir texto
  • Adicionar linhas ao texto
  • Podemos remover linhas do texto
  • Permite que você modifique ou preserve um arquivo original

A sintaxe geral para usar sed é a seguinte:

 sed OPTIONS… [SCRIPT] [INPUT_FILE…]
Aprenderemos algumas maneiras de usar este comando no Linux.

1. Como usar o comando SED no Linux

Uso básico do sedPara este exemplo, vamos usar "echo" para ver como o comando sed pode substituir parte do texto inserido, digitamos:

 echo solvitic | sed 's / vitic / vetic /'
Neste caso, estamos dizendo ao sed para substituir a palavra “vítrico” por “vético”, ao pressionar Enter, este será o resultado:

PROLONGAR

Vemos que a mudança é automática.

2. Seleção de texto com o comando SED Linux

Passo 1
Neste caso, teremos um arquivo de texto que está hospedado na área de trabalho:

PROLONGAR

Agora vamos usar a seguinte linha:

 menos Solvetic.txt
Passo 2
Ao pressionar Enter, este será o resultado:

PROLONGAR

Com o sed é possível selecionar algumas linhas do arquivo, para isso devemos indicar as linhas iniciais e finais do intervalo a selecionar, por exemplo, se quisermos extrair as linhas dois a sete executamos:

 sed -n '2,7p' Solvetic.txt
etapa 3
Veremos o seguinte:

PROLONGAR

Devemos ter em mente a vírgula nos intervalos a serem atribuídos (2,7), o parâmetro p indica que significa "imprimir linhas correspondentes", com isso o comando sed irá imprimir todas as linhas desse intervalo e o -n (silencioso ) opção cuida para não exibir texto que não corresponda a esse intervalo.

Passo 4
Podemos usar o parâmetro -e (expressão) para fazer várias seleções, por exemplo:

 sed -n -e '1,2p' -e '5,6p' Solvetic.txt

PROLONGAR

Etapa 5
Com o sed é possível selecionar a linha de partida, a seguir indicamos qual deve ser percorrida no arquivo e para imprimir as linhas alternativas, por exemplo, inserimos:

 sed -n '1 ~ 3p' Solvetic.txt
Neste caso, o primeiro número refere-se à linha de partida e o segundo número diz ao sed quais linhas serão exibidas após a linha de partida:

PROLONGAR

Etapa 6
Outro uso do sed é a capacidade de selecionar linhas em que estão os padrões de texto correspondentes. Se não soubermos de onde o número da linha se origina, podemos executar o seguinte:

 sed -n '/ Executar / p' Solvetic.txt

PROLONGAR

Veremos as linhas que começam com esse termo.

3. Como criar substitutos com SED Linux

Passo 1
Na parte básica vimos como substituir o texto usando sed, lá usamos o parâmetro -s (substituição). Em seguida, a primeira string indica o padrão de pesquisa e a segunda se refere ao texto com o qual será substituído.

 sed -n 's / tasks / actions / p' Solvetic.txt 
Neste exemplo, substituímos "tarefas" por "ações":

PROLONGAR

Passo 2
Com o parâmetro p sed ele para automaticamente após a primeira correspondência, para realizar uma pesquisa global e fazer a alteração em geral, devemos adicionar "g":

 sed -n 's / tasks / actions / gp' Solvetic.txt
Se quisermos que não faça distinção entre maiúsculas e minúsculas, adicionaremos o "i":
 sed -n 's / tasks / actions / gpi' Solvetic.txt
etapa 3
É possível criar restrições às substituições apenas para certas seções do arquivo, antes de tudo listamos as linhas a serem analisadas:
 sed -n '1,3p' Solvetic.txt

PROLONGAR

Passo 4
Vamos ver o seguinte, podemos encontrar onde existem dois espaços e substituí-los por um:

 sed -n '1.3 s / * / / gp' Solvetic.txt
O asterisco (*) representa zero ou mais do caractere selecionado anteriormente.

Etapa 5
Você pode reduzir o padrão de pesquisa a um único espaço com o seguinte comando:

 sed -n '1.3 s / * / / gp' Solvetic.txt
Vemos a diferença nos resultados:

PROLONGAR

No último caso, o asterisco corresponde a zero ou mais do caractere anterior, isso faz com que cada caractere sem espaço pareça um "espaço zero" ao aplicar o comando.

Etapa 6
Para fazer duas ou mais substituições simultaneamente, executamos:

 sed -n -e 's / executado / aplicado / gip' -e 's / tasks / actions / gip' Solvetic.txt

PROLONGAR

4. Opções de substituição SED no Linux


Também podemos usar o sed para extrair nomes de arquivos do sistema, neste caso devemos ter em mente que cada objeto deve corresponder a um padrão de pesquisa (subexpressões) que pode ser numerado (até no máximo nove elementos).

Passo 1
Esses números podem então ser usados ​​para fazer referência a subexpressões específicas.
A subexpressão deve ser colocada entre parênteses [()] e os parênteses devem ser precedidos por uma barra invertida (\) para que não sejam detectados como um caractere normal, por exemplo:

 sed 's / \ ([^:] * \). * / \ 1 /' / etc / passwd

PROLONGAR

As variáveis ​​usadas neste comando são

  • sed 's /: indica o comando sed e o início da expressão de substituição.
  • \ (: coloque a subexpressão, precedida por uma barra invertida
  • [^:] *: é a primeira subexpressão do termo de pesquisa que contém um grupo entre colchetes, o acento circunflexo (^) significa "não" quando usado em um grupo, ou seja, qualquer caractere que não seja dois pontos
  • \): O parêntese de fechamento [)] com uma barra invertida
  • . *: é a segunda subexpressão de pesquisa que indica "qualquer caractere e qualquer número deles".
  • / \ 1: é a parte de substituição da expressão que contém um número 1 precedido por uma barra invertida (\) e indica que o texto corresponde à primeira subexpressão
  • / ': termina o comando sed

Passo 2
Com o comando anterior, procuramos por qualquer string de caracteres que não contenha dois pontos, uma vez que cada linha do arquivo / etc / passwd começa com o nome de usuário terminando em dois pontos. Podemos substituir esse valor isolando o nome de usuário com o seguinte comando:

 sed 's / \ ([^:] * \) \ (. * \) / \ 2 /' / etc / passwd

PROLONGAR

etapa 3
Podemos exibir apenas os nomes de usuário com o seguinte comando:

 sed 's /:.*// "/ etc / passwd
Outra opção com sed é usar o parâmetro c (cut - cut) para substituir o texto em um arquivo, por exemplo:
 sed '/ Linux / c sistema operacional Linux' Solvetic.txt

PROLONGAR

5. Insira linhas e texto com SED no Linux

Passo 1
Outra tarefa para usar com o sed é inserir novas linhas e texto em um arquivo, neste caso temos os seguintes dados:

PROLONGAR

Passo 2
Podemos inserir uma nova linha especificando abaixo a qual será inserida:

 sed '/ Ub / a -> Inserido!' Solvetic.txt

PROLONGAR

etapa 3
Também é possível usar o comando Insert (i) para inserir uma nova linha acima da correspondência:

 sed '/ Wi / i -> Inserido!' Solvetic.txt

PROLONGAR

Passo 4
Podemos usar o sinal de "e" comercial (&) para adicionar um novo texto a uma linha correspondente no arquivo, executamos:

 sed 's /.*/--> Inserido & /' Solvetic.txt

PROLONGAR

6. Como deletar uma linha com SED Linux


Para este caso, devemos usar o parâmetro d (deletar), para deletar por exemplo a segunda linha que executamos:
 sed '2d' Solvetic.txt

PROLONGAR

Podemos remover um intervalo, se necessário:

 sed '1,4d' Solvetic.txt
Para remover linhas fora de um intervalo, devemos usar um ponto de exclamação (!) Da seguinte maneira:
 sed '2,4! d' Solvetic.txt

7. Como salvar alterações com SED no Linux

Passo 1
Para aplicar as alterações feitas, é possível usar a opção No local (-i) para que o sed grave as alterações no arquivo original, mas para maior segurança podemos adicionar uma extensão de backup como segue (fizemos o backup as linhas contendo a palavra Wi):

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt
Listamos o conteúdo:
 cat Solvetic.txt.bak

PROLONGAR

Passo 2
É possível redirecionar a saída para um novo arquivo com os mesmos resultados:

 sed -i'.bak '' /^.*Wi.*$/d 'Solvetic.txt> Solvetic1.txt

PROLONGAR

Com o sed podemos trabalhar com os arquivos de forma completamente completa no Linux, visto que vimos cada uma de suas opções de uso.

wave wave wave wave wave