Como ignorar as linhas começa com # usando grep / awk

2
cat /etc/oratab
#test1:/opt/oracle/app/oracle/product/11.2.0.4:N
+ASM2:/grid/oracle/app/oracle/product/11.2.0.4:N         # line added by Agent
test2:/opt/oracle/app/oracle/product/11.2.0.4:N          # line added by Agent
test3:/opt/oracle/app/oracle/product/11.2.0.4:N          # line added by Agent

oracle@node1 [/home/oracle]
cat /etc/oratab | grep -v "agent" | awk -F: '{print $2 }' | awk NF | uniq

awk NF é omitir linhas em branco na saída.

Apenas linhas iniciadas com # precisam ser ignoradas. Saída esperada:

/grid/oracle/app/oracle/product/11.2.0.4
/opt/oracle/app/oracle/product/11.2.0.4
    
por ABUL KASHIM 17.12.2014 / 17:35

4 respostas

5
awk -F: '/^[^#]/ { print $2 }' /etc/oratab | uniq
    
por 17.12.2014 / 17:40
5

Usando grep:% grep -vE "^#" ou grep -E "^[^#]"

    
por 17.12.2014 / 18:12
2

A instrução next awk ignorará a linha atual, o que é útil se você tiver que corresponder a vários blocos no seu script.

awk '
/^#/ {next}
/ pattern 1 / {    }
/ pattern 2 / {    } '  filename 
    
por 17.12.2014 / 18:22
-1
sed 's/#.*//'

Isso elimina os comentários, mesmo que eles não comecem na primeira coluna.

    
por 17.12.2014 / 17:55