Eliminando linhas de comentário ou linhas em branco no Linux

Publicado por Juliano Atanazio em 12/09/2008

[ Hits: 41.538 ]

Blog: http://juliano777.wordpress.com

 


Eliminando linhas de comentário ou linhas em branco no Linux



Quem usa o Squid sabe como seu arquivo principal (squid.conf) é cheio de linhas com comentários, que para consulta ajudam, mas apara administração atrapalham demais. :S

Por quê? Muitas linhas com comentários... O intuito é gerar um arquivo enxuto, o que agilizaria seu entendimento. Porém tal situação não serve apenas para o Squid, depende do que houver necessidade.

Mãos na massa:

Antes de mais nada crie uma cópia do arquivo original:

cp arquivo arquivo.bkp

Agora sim, vamos deixar somente com linhas válidas:

grep -v "^#" arquivo.bkp | sed '/^$/d' > arquivo

Explicação:
  • O "grep -v "^#" arquivo.bkp" retira as linhas que iniciam com "#";
  • sed '/^$/d' apaga as linhas em branco.

Acho que não preciso dizer que o "|" (pipe) manda a saída do comando anterior pra entrada do próximo comando e que o ">" redireciona a saída para o arquivo.

Bom, espero que seja útil para alguém, senão vou continuar tentando. :)

Um grande abraço!

Outras dicas deste autor

PostgreSQL: Concedendo ou revogando privilégios em colunas

Função SQL replace: corrigindo inserções equivocadas

Clonando máquinas na rede pelo UDP Cast (sem Live CD do mesmo)

PostgreSQL com ZEROFILL e AUTO_INCREMENT

Consulta aleatória com PostgreSQL

Leitura recomendada

Redirecionamento no Shell

SED - combinando o conteúdo de dois arquivos

Introdução ao awk

Busca por string dentro dos arquivos

Executando comandos em looping no shell

  

Comentários
[1] Comentário enviado por irado em 12/09/2008 - 14:49h

foi muito útil pra mim - por coincidencia, estava procurando quando vi o post e - mais uma - para um squid.conf mesmo (risos).

bão.. só um senão: lá pelas linhas tantas aparecem algumas linhas mencionando portas seguras, ssl, etc; nessas, a grade "#" de comentário aparece APÓS a definição das portas seguras então convém remover-se a informação (nome) das portas ANTES de passar o arquivo por esse processo :)

[2] Comentário enviado por esojep em 12/09/2008 - 17:46h

simplificando o comando acima utilizando somente o grep com a opção -E (expressão regular):
grep -vE "^(#|$)" arquivo

[3] Comentário enviado por a1977rodrigues em 10/06/2010 - 11:49h

use egrep também para eliminar linhas iniciadas com #

exemplo:

egrep ´^[^#].* arquivo.bkp

#usando egrep não é necessáriuo usar "escapes" \



[4] Comentário enviado por a1977rodrigues em 10/06/2010 - 11:50h

corrigindo

use egrep também para eliminar linhas iniciadas com #

exemplo:

egrep ´^[^#].*' arquivo.bkp

#usando egrep não é necessáriuo usar "escapes" \


[5] Comentário enviado por Carlos_Cunha em 16/05/2014 - 11:06h

Opa!
Valeu foi de grande ajuda...
Mas pode ser feito assim também...


cat arquivo.txt |grep -vE "^($|#)"



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts