歡迎您光臨本站 註冊首頁

@awk判斷輸出@ .

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

@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/'

[火星人 ] @awk判斷輸出@ .已經有322次圍觀

http://coctec.com/docs/service/show-post-1688.html