28 pontos por xguru 2021-11-15 | 1 comentários | Compartilhar no WhatsApp
  • Exibir apenas 1 linha

→ sed -n '10p' file.txt

  • Substituir caracteres em todas as linhas, exceto na linha 5

→ sed '5!/s/foo/bar/' file.txt

  • Fazer substituição com regex em todas as linhas que começam com um caractere específico

→ sed '/^hello/ s/h/H/' file.txt

  • Substituir apenas da linha 5 até a última linha

→ sed '5,$ s/foo/bar/' file.txt

  • Remover linhas vazias

→ sed '/^$/d' file

  • Exibir todas as linhas entre duas regex

→ sed -nE '/^foo/,/^bar/p' file.txt

  • Usar um delimitador personalizado para encontrar facilmente textos com barras

→ sed 's_/bin/bash_/bin/sh_' file.txt

  • Remover strings duplicadas separadas por espaço (exceto as que se repetem três vezes)

→ sed -E 's_([a-zA-Z0-9_]+) \1_\1_ig' f1

  • Encontrar um padrão específico, alterá-lo e salvar apenas as linhas modificadas em outro arquivo

→ sed 's_foo_bar_w replaced.txt' file.txt

  • Fazer várias substituições ao mesmo tempo

→ sed -e 's_foo_bar_' -e 's_hello_HELLO_' file.txt

  • Remover todos os comentários entre duas palavras-chave e inserir uma linha em branco

→ sed -E '/start/,/end/ s/#.*//' file.txt

  • Apagar todos os comentários que começam com #

→ sed -E '/^#/d' f1

  • Exibir apenas até aparecer um padrão específico

→ sed '/start/q' file.txt

  • Inserir um arquivo após uma linha específica

→ sed '5 r newfile.txt' file.txt

  • Adicionar texto na linha após uma parte que corresponda a uma regex específica

→ sed '/foo/a\AFTER FOO' file.txt

  • Substituir a linha que corresponde a uma regex específica

→ sed '/foo/c\FOO IS CHANGED' file.txt

  • Salvar em outro arquivo todos os comentários que começam com #

→ sed -E '/^#/w comments.txt' file.txt

  • Exibir apenas cada segunda linha (uma sim, uma não; também pode ser alterado para 3/4 etc.)

→ sed -n '1~2p' file.txt

  • Editar o arquivo diretamente, mas criando um backup

→ sed -i.bak 's/hello/HELLO/' file.txt

  • Adicionar duas linhas em branco após uma correspondência de regex

→ sed -E '/^#/G G' file.txt

1 comentários

 
tribela 2021-11-15

É realmente uma dica essencial saber que você pode usar caracteres diferentes da barra como delimitadores.

Com bastante frequência você acaba incluindo barras, como ao trocar a URL de um repositório apt.