如何忽略以 # using grep / awk 开头的行

ABU*_*HIM 8 shell grep awk shell-script

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
Run Code Online (Sandbox Code Playgroud)

awk NF 是在输出中省略空行。

只有以 # 开头的行需要被忽略。预期输出:

/grid/oracle/app/oracle/product/11.2.0.4
/opt/oracle/app/oracle/product/11.2.0.4
Run Code Online (Sandbox Code Playgroud)

Hau*_*ing 14

awk -F: '/^[^#]/ { print $2 }' /etc/oratab | uniq
Run Code Online (Sandbox Code Playgroud)

/^[^#]/匹配第一个字符不是#; 的每一行 [^意思是“在下一个(或者更确切地说:关闭)之前没有任何字符]

因为只需要前两个冒号之间的部分,所以-F:' makesawk split the line at colons, andprint $2` 打印第二部分。


Alb*_*ert 10

使用 grep:
grep -vE "^#"grep -E "^[^#]"