Comando sed para excluir linhas em um arquivo

Comando sed para excluir linhas em um arquivo

Na maioria dos casos, quando você está trabalhando com um arquivo de texto, é provável que tenha alguns espaços em branco. Esses espaços em branco podem variar de alguns caracteres a várias linhas que estão vazias ou não têm informações. Manter esses arquivos com espaços desnecessários pode ser demorado e inconveniente. Pode haver várias razões para manter esses arquivos, mas a melhor maneira de lidar com eles é excluir as linhas que estão vazias. Este artigo explora o comando Unix sed e seu uso na exclusão de linhas vazias em um arquivo.

O que é sed?

SED significa editor de fluxo. É um editor de linha de comando não interativo. É usado principalmente para editar e filtrar arquivos. O SED é mais frequentemente usado em scripts, onde é usado para editar um único arquivo ou vários arquivos sequencialmente. O SED pode ser usado para executar uma sequência de ações de edição em um único arquivo ou em um grupo de arquivos. Ele pode ser usado para excluir linhas e palavras em um arquivo, substituir palavras e até adicionar texto em locais específicos em um arquivo.

Neste tutorial, você aprenderá sobre o comando linux sed para excluir linhas de um arquivo com base em argumentos. Lembre -se de que o comando padrão não faz alterações no arquivo original. Se você deseja remover arquivos no mesmo arquivo, use '-i' opções com comandos.

1. Exclua a primeira linha do arquivo

Você pode usar o '1d' opção para excluir a primeira linha do arquivo. Por exemplo, você tem um arquivo CSV e deseja remover a linha de título. Use o seguinte comando para excluir a primeira linha com sed.

sed '1d' file_name  

Aqui '1' representar para a primeira linha e o 'D' é usado para excluir. Então, combinando o '1d' exclui a primeira linha do arquivo. Veja o exemplo abaixo:

Exemplo de comando sed para excluir a primeira linha do arquivo

Você pode ver que o 'sed' O comando excluiu a primeira linha da saída.

2. Exclua a última linha do arquivo

Use o parâmetro de garantia de comando '$ d' com sed para excluir a última linha ou linha de rodapé de uma multa. O comando a seguir excluirá a última linha do arquivo_name.Arquivo CSV.

sed '$ d' file_name 

No comando acima '$' representar a última linha do arquivo e 'D' é excluir essa linha.

Exemplo de comando sed para excluir a última linha do arquivo

3. Exclua uma linha específica por número

Você pode especificar o número da linha seguido por 'D' Para excluir essa linha específica. Por exemplo, para excluir o 5º arquivo do arquivo, execute:

sed '5d' file_name.CSV  

4. Exclua a gama de linhas

O SED também permite remover uma variedade de linhas do arquivo. Podemos especificar a linha de partida e o número da linha de extremidade com um comando separado. Vamos ver o exemplo abaixo:

sed '2,5d' file_name 

O comando acima excluirá o número da linha de 2 a 5 do arquivo especificado.

5. Exclua linhas que não sejam a primeira linha

Use a negação (!) Operador com opção D no comando sed. O seguinte comando sed remove todas as linhas, exceto a linha do cabeçalho.

sed '1!d 'file_name 

6. Exclua linhas que não sejam a última linha

Use a negação (!) Operador com opção D no comando sed. O seguinte comando sed remove todas as linhas, exceto a linha do cabeçalho.

sed '$!d 'file_name 

7. Excluir linhas diferentes do intervalo especificado

Use a negação (!) Operador com opção D no comando sed. O seguinte comando sed remove todas as linhas, exceto a linha do cabeçalho.

sed '2,5!d 'file_name 

8. Exclua o primeiro e a última linha

sed '1d; $ d' file_name 

9. Exclua linhas vazias ou linhas em branco

O comando sed pode ser usado para excluir linhas vazias em um arquivo de texto. Para fazer isso, você pode usar o seguinte comando:

sed '/^$/d' file_name  

O comando acima exclui todas as linhas vazias do arquivo especificado. Qualquer linha contém um único espaço não é considerado como uma linha única.

10. Excluir linhas que começam com o personagem especificado

números sed '/^t/d'.CSV 

11. Excluir linhas que terminam com o personagem especificado

números sed '/t $/d'.CSV 

12. Excluir linhas que contêm um padrão

números sed '/padrão/d'.CSV 

Conclusão

Sempre há necessidade de limpar os arquivos de texto antes de processamento adicional, pois eles podem ter caracteres indesejados, como Tab, Newline, Space, etc. O SED oferece várias maneiras de excluir linhas, palavras ou até caracteres de um arquivo. Basta colocar a operação desejada no prompt de comando e você terminou!