@awk判斷輸出@ .
@awk判斷輸出@ .
今天發現了一個awk的一個判斷功能,如果匹配就輸出,不匹配則不輸出,實際上也可以理解成搜索功能吧,就是在日誌中搜索關鍵字。
[oracle@Test231 ~]$ echo "INFO: Server startup in 2325 ms"
INFO: Server startup in 2325 ms
$ echo "INFO: Server startup in 2325 ms"|awk '{print $1}'
INFO:
$ echo "INFO: Server startup in 2325 ms"|awk '{print $2}'
Server
$ echo "INFO: Server startup in 2325 ms"|awk '{print $3}'
startup
$ echo "INFO: Server startup in 2325 ms"|awk '{if(($2~/Server/)&&($3~/startup/))print}'
INFO: Server startup in 2325 ms
$ 其實真正的用法是tail -n number /opt/log/catalina.out | awk'{if(($2~/Server/)&&($3~/startup/))print}'
查看tomcat是否啟動~
下面我們再來看一個例子:$ ls -l /opt/oracle/tomcat
total 8
drwxr-xr-x 9 oracle oinstall 4096 May 17 2011 tomcat-cas
drwxr-xr-x 9 oracle oinstall 4096 Jun 24 13:30 tomcat-test顯示的是行數:$ ls -l /opt/oracle/tomcat |awk /^d/'{print$NR}'
9
oracle
$ ls -l /opt/oracle/tomcat |awk/^d/'{print$NF}'
tomcat-cas
tomcat-test
$ ls -l /opt/oracle/tomcat |awk /^d/'{print$NF}'|awk '{printlength($1)}'10
11
注意: NF The number of fields in the current input record.
NR The total number of input records seen so far.
《解決方案》
echo "INFO: Server startup in 2325 ms"|awk '$2~/Server/&&$3~/startup/'