- 论坛徽章:
- 771
|
回复 6# bikkuri
开是enb.max不保证有序,每次插入都重新排序的写好了。- #!/bin/bash
- function upd_enbmax(){
- awk '
- function bubble_sort(record,val,n){
- for(i=1;i<n;i++)
- for(j=n;j>i;j--)
- if(val[i]<val[j]){
- temp=val[i]
- val[i]=val[j]
- val[j]=temp
- temp=record[i]
- record[i]=record[j]
- record[j]=temp
- }
- }
-
- NR==FNR{
- ++m
- upd_enb[m]=$6
- upd_record[m]=$0
- upd_val[m]=gensub(/\[([0-9]+).*/,"\\1",1,$NF)
- next
- }
-
- {
- ++n
- enb[n]=$6
- record[n]=$0
- val[n]=gensub(/\[([0-9]+).*/,"\\1",1,$NF)
- }
-
- END{
- for(i=1;i<=m;i++){
- found=0
- for(j=1;j<=n;j++){
- if(upd_enb[i]==enb[j]){
- record[j]=upd_record[i]
- val[j]=upd_val[i]
- found=1
- break
- }
- }
- if(!found){
- ++n
- record[n]=upd_record[i]
- val[n]=upd_val[i]
- }
-
- }
-
- bubble_sort(record,val,n)
- for(i=1;i<=n;i++)
- print record[i]
- }
- ' $1 $2
- }
- upd_enbmax ue3424.upd enb.max
- echo "###Anthoer update call###"
- upd_enbmax ue8342.upd enb.max
复制代码- cat ue3424.upd
- 2014-06-29 04:41:07 1403988067 sgw01 ue3424 enb1001 [0/3] [45/3129]
- cat ue8342.upd
- 2014-06-29 05:11:06 1403989866 sgw02 ue8342 enb5303 [0/2] [53/535]
- cat enb.max
- 2014-06-29 04:21:03 1403986863 sgw02 ue5453 enb5303 [2/6] [3/852]
- 2014-06-29 04:36:08 1403987768 sgw02 ue9564 enb3902 [0/5] [74/4382]
复制代码 结果- ./test.sh
- 2014-06-29 04:36:08 1403987768 sgw02 ue9564 enb3902 [0/5] [74/4382]
- 2014-06-29 04:41:07 1403988067 sgw01 ue3424 enb1001 [0/3] [45/3129]
- 2014-06-29 04:21:03 1403986863 sgw02 ue5453 enb5303 [2/6] [3/852]
- ###Anthoer update call###
- 2014-06-29 04:36:08 1403987768 sgw02 ue9564 enb3902 [0/5] [74/4382]
- 2014-06-29 05:11:06 1403989866 sgw02 ue8342 enb5303 [0/2] [53/535]
复制代码 |
|