Pular para o conteúdo

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

Dica publicada em Shell Script / Expressões Regulares
Juliano Atanazio julianometal
Hits: 42.741 Categoria: Shell Script Subcategoria: Expressões Regulares
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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!

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

PostgreSQL com ZEROFILL e AUTO_INCREMENT

Consulta aleatória com PostgreSQL

PostgreSQL: Concedendo ou revogando privilégios em colunas

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

Extraindo seu endereço IP com shell script (egrep + awk)

Redirecionamento no Shell

Informações completas sobre os arquivos numa pasta

Busca por string dentro dos arquivos

SED - substituir apenas a ocorrência N de uma string

#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

Entre na sua conta para comentar.