awk -F: '/^[^#]/ { print $2 }' /etc/oratab | uniq
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
Usando grep:% grep -vE "^#"
ou grep -E "^[^#]"
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
sed 's/#.*//'
Isso elimina os comentários, mesmo que eles não comecem na primeira coluna.
Tags grep awk shell shell-script