awk应用例子

 例子:
awk -F '!' '/isfile![0-9]*!/ {print $2"
" }' /usr/local/apache/logs/soft_access/20080714.log| sort -g |uniq -c
可以参考:http://www.61ec.com/jspx_view.asp?id=45
------------------------------------------------------------------------------
工作中遇到的例子
z.log
11Thu Apr 
3 11:35:06 2008 [info] 11 Connection Processed in 20 sec.
11Thu Apr  3 09:11:51 2008 [info] 9 Connection Processed in 20 sec.
提取出 Connection Processed 前 大于10的数字项
awk -F ' ' '$0~/Connection Processed/ {if( $7 > 10 ) print $7_$0;}' /z.log |sort -r
------------------------------------------------------------------------------
awk 更复杂一些的应用
cat /z.log | awk -F ' ' '$0~/Connection Processed/ {if( $7 > 10 ) print $7_$0; system("clear")}' |sort -r
system 用来调用系统shell命令
------------------------------------------------------------------------------
拼接字符串输出单引号
a.txt
123123
123123
123123
-----
方法1
awk 'BEGIN{ str=""; } {str=" "str" or user_id='/''"$0"'/'' "; } END{print str}' a.txt
方法2
awk 'BEGIN{ str=""; } {str=" "str" or user_id=/047"$0"/047 "; } END{print str}' a.txt
结果or user_id='123123'  or user_id='123123' or user_id='123123'
----------------------------------------------------------------------------------------
合并文件并且选出关联 内容
a.txt-----------------
1054 10.0.0.123 abcde.com
1055 10.0.0.34 abcde.com
b.txt
1053 10.0.0.128 abcde.com
1054 10.0.0.129 aaa.com
命令-------------------
awk '{ while( ("cat a.txt"|getline k) >0){ split(k,store," ");  if(store[1]){ printf("%s %s/r/n",k,$0); }  } close("cat a.txt"); }' b.txt
输出
1054 10.0.0.123 abcde.com 1054 10.0.0.129 aaa.com
其中break;和continue;在语句中可以使用
"cat a.txt"|getline k 和 getline k<"a.txt"等效close("a.txt")来重新打开文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值