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:' makes
awk split the line at colons, and
print $ 2`は2番目の部分を印刷します。
答え2
grepの使用:
grep -vE "^#"
またはgrep -E "^[^#]"
答え3
awkステートメントはnext
現在行をスキップします。これは、スクリプト内で複数のブロックを一致させる必要がある場合に便利です。
awk '
/^#/ {next}
/ pattern 1 / { }
/ pattern 2 / { } ' filename
答え4
sed 's/#.*//'
これにより、最初の列で始まらなくてもコメントが削除されます。