- 论坛徽章:
- 145
|
回复 10# volwang
$ bash ./get_data.sh
job user group jobname queue ctime_time start_time end_time Resource_List.software Resource_List.ncpus platform xxxx run_time(h) pend_time(h)
1008.mgmt1 spbadmin Domain test456 workq 2013/12/25/14:15:52 2013/12/25/14:15:55 2013/12/25/14:16:01 Fluent 20 XeonE5-20c-80G none 0.002 0.001
1009.mgmt1 admin Domain test567 workq 2013/12/25/14:15:52 2013/12/25/14:15:55 2013/12/25/14:16:01 Fluent 20 XeonE5-20c-80G none 0.002 0.001
1010.mgmt1 admin Domain test789 workq 2013/12/25/14:15:52 2013/12/25/14:15:55 2013/12/25/14:16:01 CFX 40 XeonE5-20c-80G none 0.002 0.001
$ cat get_data.sh
msg="job user group jobname queue ctime start end Resource_List.software Resource_List.ncpus platform xxxx run pend"
awk -vmsg="$msg" -F'[; ]+' '
BEGIN{
nst=split("ctime start end", st, " ");
for(n=1;n<=nst;n++)add[st[n]]="_time";
nat=split("run pend",at," ")
for(n=1;n<=nat;n++)add[at[n]]="_time(h)";
t=split(msg,am," ");
for(n=1;n<=t;n++){
s=s p am[n]add[am[n]]; p=" ";
}
print s;
}
NF>1{
delete a;
a["job"]=$4;
for(n=5;n<=NF;n++){
#printf "$"n"="substr($n,1,9)" "
if(split($n,x,"=")>1)a[x[1]]=x[2];
#printf "("x[1]")"
}
a["run"] = sprintf("%.3f", (a["end"] - a["start"])/3600);
a["pend"] = sprintf("%.3f", (a["start"] - a["ctime"])/3600);
for(n=1;n<=nst;n++){
k=st[n]
a[k] = strftime("%Y/%m/%d/%T",a[k]);
}
s=p="";
for(n=1;n<=t;n++){
v=a[am[n]];
s=s p (v?v:"none");
p=" ";
}
print s;
}
' FILE | column -t
|
|