Como faço para remover as linhas de um arquivo usando o comando sed

Como faço para remover as linhas de um arquivo usando o comando sed
O comando sed é conhecido como editor de fluxo. O comando sed é usado no Linux para fazer transformação básica de texto.

Um dos muitos comandos essenciais do Linux também é o comando sed que desempenha um papel vital na manipulação de arquivos. É usado para muitos propósitos; Alguns dos principais são os seguintes.

Remova ou exclua aquela linha específica que corresponde aos padrões fornecidos.

  • Removendo linhas com expressões regulares.
  • Com base na posição de um arquivo, exclua uma linha específica.

Então, se você está pensando em remover linhas de um arquivo usando o comando sed, leia nosso artigo do início ao fim. Nós lhe daremos um resumo sobre os métodos para remover as linhas

Como faço para remover as linhas de um arquivo usando o comando sed?

Usaremos o comando sed sem -i neste artigo porque é um artigo de demonstração. Um método semelhante é a opção "Run a seco", que mostra todos os valores para o arquivo sem fazer alterações.

Usando o comando sed, podemos remover as linhas, dependendo do ambiente usando -i.

Para mostrar o comando sed, criamos um arquivo chamado Linuxhintos.TXT. Para fornecer melhores informações, incluímos esses números de linha no seguinte conteúdo.

Remoção de linhas de um arquivo com base na posição

Esta parte explicará usando o comando sed para remover linhas de um arquivo 'linuxhintos.txt 'com base em sua posição.

Primeiro, abra o arquivo usando o seguinte comando:

gato ~///

Agora execute o comando abaixo para excluir a primeira linha:

arquivo 'nd' sed

No comando acima:

N- “Nth” linha em um arquivo

D- exclusão do arquivo

Então, vamos executar este comando em nosso exemplo para excluir a 10ª linha do arquivo de texto:

Documentos do CD
sed '10d' linuxhintos.TXT

Remova a última linha de um arquivo

Se tivermos que remover a última linha do arquivo, em vez de 'n' na sintaxe usada acima, usaremos '$.'Aqui, $ representa a última linha.

arquivo sed '$ d'

Depois disso, nosso arquivo mudará para algo assim.

Remova a primeira linha e a última linha juntos

Se queremos remover a primeira e a última linhas, devemos combinar os dois comandos acima.

sed 'nd; $ d' nome do arquivo

Com este comando, as primeiras e as últimas linhas são removidas do arquivo simultaneamente.

Como você pode ver na imagem acima, a primeira e a última linha foi removida do arquivo de texto.

Remova uma variedade de linhas

O comando sed pode remover as linhas de qualquer intervalo. Para isso, apenas precisamos entrar nos números de linha 'mínimo' e 'máximo'.

Neste exemplo, removeremos as linhas que variam de 4 a 7 números.

arquivo '4,7d' sed

Depois de remover essas faixas de linhas, nosso arquivo ficará assim.

Remova várias linhas

O SED também pode remover várias linhas em um conjunto. Como você pode ver, removemos o terceiro, sexto, oitavo e as últimas linhas neste exemplo.

sed '3d; 6d; 8d; $ d' arquivo

Ao aplicar o comando sed escrito acima, as seguintes mudanças ocorrem em nosso arquivo 'Linuxhintos.TXT'.

Remoção de linhas diferentes da linha especificada ou intervalo de linhas especificadas

Através do comando sed, removemos essas linhas dos arquivos que não são definidos no comando, i.e., As linhas que não sejam as descritas são removidas.

A partir deste arquivo, removeremos as linhas restantes além dos números de 4 a 7.

Sed '4,7! arquivo d '

Aqui, o sinal de “!”Representa que não devemos remover a linha desse número específico do arquivo.

! - usado para manter o número específico de linhas do arquivo

Depois disso, nosso arquivo será algo assim:

Remova as linhas em branco ou vazias

O comando sed escrito abaixo remove linhas em branco ou vazias do arquivo apropriado.

arquivo sed '/^$/d'

Como não há linhas em branco ou vazias em nosso arquivo, nenhuma alteração ocorreu:

Remova as linhas do arquivo com base no padrão

Na segunda parte, veremos que, com a ajuda do comando sed, como removemos as linhas de um padrão semelhante.

Remoção de linhas que contêm um padrão

No exemplo, o comando a seguir remove as linhas que correspondem ao padrão de "sistema" do arquivo 'Linuxhintos.TXT'.

arquivo sed '/system/d'

Então, precisamos remover as linhas que "não estão disponíveis". É por isso que executaremos o comando abaixo:

sed '/não disponível/d' linuxhintos.TXT

Remoção de linhas que contêm uma ou várias cordas

Através do comando sed, podemos remover as linhas que correspondem ao padrão "não atualizado" ou "não disponível" do arquivo 'Linuxhintos.txt 'e esse comando é algo assim:

sed '/não atualizado \ | não disponível/d' linuxhintos.TXT

Removendo linhas que começam com um personagem específico

Podemos remover todas as linhas que começam com qualquer personagem através do comando sed. Criamos um novo arquivo chamado 'Linuxhintos.txt 'com o seguinte conteúdo:

O comando sed abaixo removerá todas as linhas que começam com o personagem 'A'.

arquivo sed '/^a/d'

Vamos remover essas linhas do nosso arquivo, que começam com 'a' e 'l'. Para o qual usaremos o seguinte comando.

arquivo sed '/^[al]/d'

Usando sed, removemos todas as linhas começando com "A" e terminando com a string "Linux".

sed '/^(a).*(Linux)/D 'arquivo

Removendo linhas que terminam com um caractere especificado

Este comando sed remove todas as linhas que terminam com “M.”

arquivo sed '/m $/d'

O seguinte comando sed removerá as linhas que terminam com os caracteres 'm' e 'x'.

arquivo sed '/[xm] $/D'

As linhas de caracteres que terminam com 'm' e 'x' são removidas do nosso arquivo; Então, nosso arquivo ficará assim.

Removendo todas as linhas que começam com maiúsculas

Removeremos todas essas linhas do arquivo usando o seguinte comando: uma letra de maiúsculas.

arquivo '/^[a-z]/d'

Depois de aplicar o comando acima, todas as linhas do nosso arquivo que começaram com letras maiúsculas serão removidas, e a mudança em nosso arquivo será assim.

Removendo uma linha de padrão correspondente com um intervalo especificado

Com a ajuda do seguinte comando, removeremos apenas essas linhas de algumas linhas definidas com um padrão específico.

Este exemplo remove apenas linhas com padrões Linux do arquivo entre 1 a 6 linhas.

sed '1,6 /linux/d; arquivo

Depois de aplicar o comando, nosso arquivo 'sed - Demo -1.txt 'vai parecer algo assim.

Excluiremos a segunda linha com o seguinte comando sed apenas se ele contiver o padrão "OpenSuse".

sed '2 /openSuse/d;' arquivo

O comando apropriado removerá a segunda linha do nosso arquivo 'sed - Demo -1.txt ', pois tem um padrão específico de “OpenSuse.”

O comando apropriado removerá a segunda linha do nosso arquivo 'sed - Demo -1.txt ', pois tem um padrão específico de “OpenSuse.”

Também podemos excluir a linha que corresponde ao padrão 'sistema' e a seguinte linha no arquivo usando o comando sed.

sed '/system/n; d;' arquivo

Remova as linhas com padrões específicos

Você pode remover todas as linhas seguindo o padrão "CentOS" usando o comando sed.

arquivo sed '/centos/, $ d'

Remoção de linhas que contêm números/dígitos

Com o comando sed escrito abaixo, podemos remover todas as linhas contendo 'dígito.'

arquivo sed '/[0-9]/d'

Ao fazer algumas alterações no comando sed, removeremos todas essas linhas do arquivo que começam com apenas dígitos.

arquivo '/^[0-9]/d'

Após esse comando, todas as linhas que começam com dígitos serão removidas de nosso arquivo.

Novamente, fazendo algumas mudanças no comando, removeremos apenas essas linhas do arquivo que termina com um dígito.

arquivo sed '/[0-9] $/D'

Remoção de linhas que contêm caracteres alfabéticos de um arquivo

Com o comando sed, excluiremos todas as linhas do arquivo 'Linuxhintos.txt, 'que contêm personagens alfabéticos.

arquivo sed '/[a-za-z]/d'

Conclusão

Este artigo mostra vários exemplos de remoção de linhas de um arquivo usando o comando sed. Vemos como, com a ajuda do comando sed, podemos remover facilmente qualquer linha dos arquivos. Se nos lembrarmos desses comandos, economizamos muito tempo enquanto reduzimos.