Editar arquivos de texto e saída de terminal é uma tarefa diária para quem administra máquinas Linux. Utilitários de linha de comando como sed permitem que um usuário modifique e altere o conteúdo de um arquivo de texto diretamente da janela do terminal.

Neste artigo, discutiremos o comando sed em detalhes, junto com alguns exemplos essenciais que demonstram o poder do utilitário sed no Linux.

Qual é o Comando sed?

O comando sed, que é um acrônimo para Editor de fluxo, é uma ferramenta de linha de comando que permite aos usuários do Linux realizar operações baseadas em texto em arquivos e saídas de terminal. Usando sed, os usuários podem localizar e substituir palavras específicas em um texto, exibir uma determinada seção da saída e editar arquivos de texto sem abri-los.

As três operações básicas suportadas pelo comando sed são:

  1. Inserção
  2. Eliminação
  3. Substituição (encontrar e substituir)

Os usuários avançados também podem implementar expressões regulares com o comando sed para editar fluxos de texto com mais eficiência.

instagram viewer

A sintaxe básica do comando é:

sed [opções] [padrão] [caminho do arquivo]

...Onde opções são as várias funcionalidades do comando, padronizar é a expressão regular ou o script que você deseja corresponder, e caminho de arquivo é o caminho para o arquivo de texto que contém o texto.

10 exemplos de comando sed do Linux

Se você planeja se tornar um usuário regular do Linux, saber como editar arquivos, pesquisar e substituir palavras específicas e filtrar a saída do terminal pode ser útil para você. Esta seção cobre alguns exemplos do comando sed que definitivamente o transformará em um usuário avançado do Linux.

Estaremos usando o seguinte arquivo de texto para demonstração no post.

Este é um arquivo de texto de demonstração.
É um arquivo incrível que vai ajudar a todos nós.
O comando sed também é ótimo para edição de stream.
Quer aprender como usar o comando?
Esta é outra linha do arquivo.
Esta é a terceira linha geral do arquivo.
Este arquivo é denominado textfile.
Esta é uma maçã.
Esta é uma laranja.

1. Ver um intervalo de linhas

Os comandos do Linux, como head e tail geram as primeiras ou as últimas dez linhas de um arquivo de texto. Mas e se você quiser colocar o conteúdo entre duas linhas específicas em um arquivo? Em tais situações, o comando sed pode ser útil.

Para produzir o conteúdo entre as linhas 3 e 5 do arquivo textfile.txt:

sed -n '3,5p' textfile.txt

O -n flag evita que o sed exiba o espaço do padrão no final de cada ciclo. Você também pode usar o --quieto e - silencioso opções em vez de -n. O p argumento representa impressão e é usado para exibir as linhas correspondentes ao usuário.

Executar o comando mencionado no arquivo de exemplo produz a seguinte saída.

O comando sed também é ótimo para edição de stream.
Quer aprender como usar o comando?
Esta é outra linha do arquivo.

Para produzir todo o conteúdo do arquivo, exceto para o intervalo especificado, use o d bandeira em vez de p no comando:

sed '3,5d' textfile.txt

O d sinalizador exclui as strings correspondentes da saída e exibe o restante do conteúdo.

Este é um arquivo de texto de demonstração.
É um arquivo incrível que vai ajudar a todos nós.
Esta é a terceira linha geral do arquivo.
Este arquivo é denominado textfile.
Esta é uma maçã.
Esta é uma laranja.

2. Exibir linhas não consecutivas

Para imprimir linhas não consecutivas entre vários intervalos no arquivo:

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

Resultado:

Este é um arquivo de texto de demonstração.
É um arquivo incrível que vai ajudar a todos nós.
Esta é outra linha do arquivo.
Esta é a terceira linha geral do arquivo.

O -e bandeira ajuda em executando múltiplas ações usando um único comando.

3. Inserir espaço entre linhas

Se por algum motivo você quiser inserir linhas vazias entre cada linha em um arquivo de texto, use o G argumento com o comando sed padrão.

sed G textfile.txt

Para inserir várias linhas vazias na saída, passe várias G argumentos separados por ponto e vírgula (;) personagem.

sed 'G; G 'textfile.txt

4. Substituir uma palavra em um arquivo de texto

Se você quiser substituir cada ocorrência de uma palavra específica por alguma outra palavra, use o s e g argumentos com o comando. A sintaxe básica para substituir palavras usando o comando sed é:

sed s / originalword / replaceeword / g nome do arquivo

Usando a sintaxe mencionada acima, você pode substituir a palavra incrível com super no arquivo textfile.txt:

sed s / incrível / super / g textfile.txt

O s argumento denota substituição e a g comando é usado para substituir o conteúdo correspondente com o conteúdo de substituição especificado.

Para substituir a segunda ocorrência da palavra por sed, passe um número para o g argumento. Nesse caso:

sed s / incrível / super / g2 textfile.txt

Se você quiser ignorar maiúsculas e minúsculas enquanto substitui palavras, use kimono em vez de g, Onde eu apoia ignorar caso.

sed s / Amazing / super / gi textfile.txt

Relacionado: Usando o Vi? Veja como abrir um arquivo, salvar e sair

5. Substituir palavras dentro de um intervalo

Você também pode substituir palavras dentro de um intervalo específico.

sed '2,5s / incrível / super / g' textfile.txt

6. Realize substituições múltiplas de uma vez

Se você deseja realizar duas ou mais substituições ao mesmo tempo, basta separar os comandos com o ponto e vírgula (;) personagem.

sed 's / incrível / super / g; s / command / utility / gi 'textfile.txt

O sistema exibirá a seguinte saída.

Este é um arquivo de texto de demonstração.
É um super arquivo que vai ajudar a todos nós.
O utilitário sed também é ótimo para edição de stream.
Quer aprender como usar o utilitário?
Esta é outra linha do arquivo.
Esta é a terceira linha geral do arquivo.
Este arquivo é denominado textfile.
Esta é uma maçã.
Esta é uma laranja.

7. Substituir palavras apenas se uma correspondência for encontrada

Você também pode usar o comando sed para substituir uma palavra apenas se uma determinada correspondência for encontrada na linha. Por exemplo, para substituir a palavra uma com a se a palavra laranja está presente na linha:

sed -e '/ orange / s / a / an / g' textfile.txt

Emitir o comando mencionado acima resultará em:

Este é um arquivo de texto de demonstração.
É um super arquivo que vai ajudar a todos nós.
O utilitário sed também é ótimo para edição de stream.
Quer aprender como usar o utilitário?
Esta é outra linha do arquivo.
Esta é a terceira linha geral do arquivo.
Este arquivo é denominado textfile.
Esta é uma maçã.
Isto é uma laranja.

Observe que a palavra uma na linha Isto é uma maçã não foi substituído porque o sistema não encontrou a palavra laranja iniciar.

8. Substituir palavras usando expressões regulares

Para quem sabe como usar expressões regulares, realizar operações em strings usando o comando sed se torna muito mais fácil. Você pode implementar expressões regulares para aprimorar o poder do comando.

Para substituir todas as ocorrências da palavra Incrível ou incrível com super:

sed -e 's / [Aa] mazing / super / g' textfile.txt

Da mesma forma, você também pode usar expressões regulares avançadas para executar operações específicas usando o comando sed.

9. Pipe sed com outros comandos

Você também pode encadear o sed com outros comandos do Linux. Por exemplo, você pode canalizar o lspci comando com sed para adicionar espaços vazios entre as linhas na saída.

lspci | sed G

Para substituir palavras específicas na saída do show de rota ip comando:

mostrar rota ip | sed s / src / source / g

O comando mencionado substitui a palavra fonte no lugar da palavra original src.

Relacionado: Como usar o comando Find para pesquisar arquivos no Linux

10. Editar e fazer backup do arquivo original

Quando você está trabalhando com arquivos do sistema, é importante fazer backup do arquivo original enquanto faz as alterações. Isso irá ajudá-lo a reverter as alterações no caso de algo quebrar.

Para fazer backup do arquivo original usando sed, use o -eu sinalizar no comando.

sed -i'.backup '' s / amazing / super / g 'textfile.txt

Um novo arquivo será criado com o nome textfile.txt.backup. Você pode verificar se os dois arquivos são diferentes usando o diferença comando.

diff textfile.txt textfile.txt.backup

Editando Strings no Linux com sed

Às vezes, enquanto você está trabalhando com arquivos de texto no terminal, formatar e editar a saída para melhor legibilidade se torna uma obrigação. Sed e awk são utilitários de linha de comando no Linux que permitem ao usuário trabalhar de forma eficiente com arquivos de texto, dividindo os dados em linhas separadas.

Muitos usuários têm dificuldade em memorizar os argumentos e sinalizadores do comando sed, pois há muitos deles disponíveis para uso. Saber como obter manuais de linha de comando para qualquer comando do Linux o ajudará a sair facilmente dessas situações.

E-mail
7 maneiras de obter ajuda de linha de comando no Linux

Todos os comandos essenciais para aprender sobre os comandos do Linux na linha de comando

Leia a seguir

Tópicos relacionados
  • Linux
  • Editor de texto
  • terminal
  • Prompt de comando
Sobre o autor
Deepesh Sharma (36 artigos publicados)

Deepesh é o Editor Júnior para Linux na MUO. Ele escreve conteúdo informativo na internet há mais de 3 anos. Em seu tempo livre, ele gosta de escrever, ouvir música e tocar seu violão.

Mais de Deepesh Sharma

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas técnicas, análises, e-books grátis e ofertas exclusivas!

Mais um passo…!

Confirme seu endereço de e-mail no e-mail que acabamos de enviar.

.