Grep exclusão estranha de linhas vazias da saída

1

Ao resolver tarefas comuns, a filtragem de comentários, por exemplo, Eu posso fazer isso:

grep -v ^# /etc/apache2/apache2.conf

Dessa forma eu não tenho comentado e linhas vazias. Isso era esperado.

Eu pensei que de outra maneira é:

grep ^[^#] /etc/apache2/apache2.conf

No entanto, recebi a mesma saída, mas sem linhas vazias. Qual é o motivo?

    
por red0ct 20.06.2017 / 22:50

2 respostas

3

O segundo está procurando por linhas com pelo menos um caractere e, portanto, não corresponde a linhas vazias que não possuem caracteres. Se você quiser os dois, tente o seguinte:

grep -e ^[^#] -e ^$ /etc/apache2/apache2.conf
    
por 20.06.2017 / 22:57
2
grep -v ^#
  • excluem linhas que não iniciam com #
  • As linhas em branco
  • não começam com # , por isso não são ex cluded

wheras

grep ^[^#]
  • incluem linhas que começam com qualquer caractere, exceto #
  • as linhas em branco não começam com nenhum caractere, por isso não são em cluded
por 20.06.2017 / 23:04