我在用awk过滤postfix日志的时候用: awk 'BEGIN{"date "|getline d;split(d,mon)} $1==mon[2] && $2==mon[3] && $5 ~ /postfix/' log >> lognew 可以把当天的日志过滤出来,但是我想得到昨天的日志的时候用: awk 'BEGIN{"date -d "-1 day""|getline d;split(d,mon)} $1==mon[2] && $2==mon[3] && $5 ~ /postfix/' log >> lognew 总是报下面的错: awk: cmd. line:1: fatal: expression for `|' redirection has null string value...
我的是rh ,用shell 中awk过滤一个文件aa.log aa.log中是如下内容AC_200307082235_0xf0.tar.gz AC_200307082240_0xf1.tar.gz AC_200307082245_0xf2.tar.gz 现在我要取0708_0xf1 和 0708_0xf2 到一个新文件,怎么用awk实现。
下面这个LOG中 AMQ8417: Display Channel Status details. CHANNEL(00.01) CHLTYPE(RCVR) CONNAME(10.199.10.24) CURRENT LSTSEQNO(2) RQMNAME(QM00) STATUS(RUNNING) SUBSTATE(RECEIVE) LSTSEQNP(2) 这个括号里的2是个会变的数值,我现在要提取这个2,定向到一个文件,文件名字就叫2.怎么实现啊!
awk 是一种非常好的语言,同时有一个非常奇怪的名称。在本系列(共三篇文章)的第一篇文章中,Daniel Robbins 将使您迅速掌握 awk 编程技巧。随着本系列的进展,将讨论更高级的主题,最后将演示一个真正的高级 awk 演示程序。 捍卫 awk 在本系列文章中,我将使您成为精通 awk 的编码人员。我承认,awk 并没有一个非常好听且又非常“时髦”的名字。awk 的 GNU 版本(叫作 gawk)听起来非常怪异。那些不熟悉这种语言的人可能听说过 "...
在linux下: [root@linux root]# cat tmp 192.168.1.1 [root@linux root]# cut -d . -f 2 tmp 168 在hpux下: test[/chen]cut -d : -f 1,5 /etc/passwd root: daemon: bin: sys: adm: uucp: lp: nuucp: hpdb:ALLBASE nobody: www: mqm:,,, -------------------------------------------------------------------------------- 在linux下: [root@linux root]# awk 'BEGIN {FS="."} { print $1 " " $2 " " $3 " " $4} ' tmp 192 168...