grep / awkを使用して#で始まる行を無視する方法

grep / awkを使用して#で始まる行を無視する方法
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は出力から空行を省略することです。

#で始まる行だけを無視してください。予想出力:

/grid/oracle/app/oracle/product/11.2.0.4
/opt/oracle/app/oracle/product/11.2.0.4

ベストアンサー1

awk -F: '/^[^#]/ { print $2 }' /etc/oratab | uniq

/^[^#]/最初の文字以外のすべての#行を一致させる[^ことは、「次の文字(または終わり)の前に文字がない」を意味します]

最初の2つのコロンの間の部分だけが必要なので、-F:' makesawk split the line at colons, andprint $ 2`は2番目の部分を印刷します。

おすすめ記事