Comando SED no Linux: Uso e Exemplos

Comando SED no Linux: Uso e Exemplos

O comando SED no Linux é uma ferramenta poderosa que ajuda a executar tarefas de uso geral. Entre elas: analisar e transformar textos. Hoje em dia, o SED é suportado nos principais sistemas operacionais.

A sintaxe e vários recursos úteis do SED são, em sua maioria, emprestados do editor ed. O mecanismo em si inclui fluxos de entrada padrões, bem como de arquivos de texto. O script base da sintaxe do SED parece um pouco difícil no começo. No entanto, muitas tarefas complexas podem ser solucionadas com apenas algumas linhas de script SED.

Instalação do SED

Nos sistemas baseados em Linux, o SED é instalado por padrão. Lembre-se, antes de começar, você deve acessar seu VPS Linux com SSH. Confira nosso tutorial PuTTY se você estiver com problemas.

O comando which pode ser usado para verificar se o sistema possui SED ou não. No GNU/Linux Debian, pode-se instalar o SED usando o apt package manager da seguinte forma:

[user]: ~$ sudo apt-get install sed

Para garantir que o SED esteja instalado corretamente, o seguinte comando é utilizado:

[user]: ~$ sed --version

O comando retorna o seguinte output:

sed (GNU sed) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
 
Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bonzini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>

SED Workflow

O workflow básico do SED é leitura, execução e exibição, como mencionado na Figura 1.

A leitura recebe os valores de entrada e armazena em um buffer de padrões. A fase de execução realiza o comando no arquivo sequencialmente. E após a execução, exibe o fluxo de saída. O buffer de padrões é liberado conforme o conteúdo é exibido na interface. O processo leitura, execução e exibição se repetem até o final do arquivo.

Exemplo do SED

Para explicar de forma simples, o SED lê um arquivo e retorna seu texto. Para criar um arquivo de texto, use o editor vi.

[user]: ~$ vi text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

O comando para ler um arquivo de texto é o seguinte:

[user]: ~$ sed ‘’ text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

O comando recebe entrada do arquivo “text.txt”. Antes de fazer o uploading de entrada do arquivo, escreva um argumento de linha de comando entre um par de aspas simples. Isso “falará” para a linha do comando executar o SED.

O SED lê o arquivo de entrada “text.txt” e armazena os dados em um buffer de padrões. Após isso, a operação pode ser realizada.

Neste caso, nós passamos um argumento vazio para que nenhuma operação seja executada. O SED apresenta os dados armazenados como uma saída padrão e esvazia o buffer de padrões.

[user]: ~$ sed ‘’Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer ProgramsPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

O comando SED recebe a entrada do teclado. Ele é exibido na primeira e segunda linha. Ele exibe os dados armazenados no buffer de padrões. Para encerrar a sessão do SED, use CTRL+D no teclado.

Comandos básicos

Vamos aprender os comandos básicos do SED do Linux:

Comando de deletar

Para executar o comando de deletar, use d junto com um arquivo entre aspas. O comando irá deletar a primeira linha no arquivo text.txt.

[user]: ~$ sed ‘1d’ text.txt

Comando de Escrita

Para executar o comando de escrita, escreva w, o número da linha, e o arquivo, entre aspas. O seguinte comando lê a segunda linha e a escreve no arquivo text2.txt.

[user]: ~$ sed '2~2 w text2.txt' text.txt  
[user]: ~$ cat text2.txt
 
Harold Abelson, Structure and Interpretation of Computer Programs

Comando de Acrescentar

Use a palavra-chave e o número da linha entre aspas. Após fechar as aspas, forneça a fonte a ser acrescentada. O seguinte comando acrescentará depois da segunda linha no arquivo text.txt arquivo.

[user]: ~$ sed '2 a The Append example' text.txt[user]: ~$ cat text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer ProgramsThe Append example'

Comando de Leitura

Use r e digite a localização do arquivo entre aspas. O seguinte comando irá ler a entrada do arquivo de texto e acrescentar depois da terceira linha no arquivo text2.txt.

[user]: ~$ sed '3 r text.txt' text2.txt
[user]: ~$ cat text2.txt
 
Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs
The Append example'
Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

Conclusão

Neste tutorial, você aprendeu sobre a instalação do SED e operações básicas. A ferramenta SED permite que o usuário utilize a linha de comando de diversas maneiras.

Você também poderá resolver problemas complexos de maneira eficiente. Além do SED, o GNU-Linux oferece muitas ferramentas úteis para realizar tarefas cotidianas.

Para fechar, expanda seus conhecimentos sobre o que é VPS e como este tipo de hospedagem ajuda seu site a decolar e a se estabelecer na internet.

Author
O autor

Ariane G.

A Ariane é SEO Team Leader com experiência em conteúdo, localização e SEO. Seu desafio é levar a Hostinger ao topo dos resultados no Brasil, França e Reino Unido. Eventualmente ela compartilha seu conhecimento no blog e nos tutoriais da Hostinger e no tempo livre ela gosta de explorar lugares novos e viver intencionalmente.