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

Publicado por Juliano Atanazio em 12/09/2008

[ Hits: 41.844 ]

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

Consulta aleatória com PostgreSQL

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

PostgreSQL com ZEROFILL e AUTO_INCREMENT

Leitura recomendada

Executando comandos em looping no shell

Expressão regular para validar um IP

Screen (janelas) no modo shell?

Bloqueando tráfego via MAC com iptables

Listar comandos mais utilizados (via histórico de 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