- 论坛徽章:
- 0
|
本帖最后由 ywlscpl 于 2011-09-14 11:53 编辑
回复 1# moshangxie - awk 'BEGIN{a[1]="User-Name";a[2]="Framed-IP-Address";a[3]="NAS-Identifier";a[4]="Acct-Status-Type";a[5]="Acct-Session-Time";a[6]="Calling-Station-Id";a[7]="Acct-Unique-Session-Id";a[8]="Acct-Session-Time";a[9]="Timestamp"}{for (i=1;i<=9;i++) if ($1==a[i]) {gsub(/"/,"",$NF);b[i]=$NF}}$1=="Timestamp"{for (i=1;i<=9;i++) {if (i==5&&!b[i]) b[i]=0;if (i==8) if (!b[i]) b[i]=b[9];else b[i]=b[9]-b[i];if (i==8||i==9) b[i]=strftime("%Y-%m-%d %H:%M:%S",b[i]);printf b[i]"\t"}print "";delete b}' file
复制代码- ywlscpl@ubuntu:~$ awk 'BEGIN{a[1]="User-Name";a[2]="Framed-IP-Address";a[3]="NAS-Identifier";a[4]="Acct-Status-Type";a[5]="Acct-Session-Time";a[6]="Calling-Station-Id";a[7]="Acct-Unique-Session-Id";a[8]="Acct-Session-Time";a[9]="Timestamp"}{for (i=1;i<=9;i++) if ($1==a[i]) {gsub(/"/,"",$NF);b[i]=$NF}}$1=="Timestamp"{for (i=1;i<=9;i++) {if (i==5&&!b[i]) b[i]=0;if (i==8) if (!b[i]) b[i]=b[9];else b[i]=b[9]-b[i];if (i==8||i==9) b[i]=strftime("%Y-%m-%d %H:%M:%S",b[i]);printf b[i]"\t"}print "";delete b}' file
- test0023 10.72.3.127 TEST Stop 26110 00:02:3f:07:48:11 3b3c5639bdf52982 2010-01-30 16:44:51 2010-01-31 00:00:01
- test0013 10.72.1.131 TEST Start 0 00:10:5c:e8:77:a4 2c32637ece099079 2010-01-31 00:00:02 2010-01-31 00:00:02
- ywlscpl@ubuntu:~$ awk --version
- GNU Awk 3.1.6
- Copyright (C) 1989, 1991-2007 Free Software Foundation.
复制代码 |
|