+ -
当前位置:首页 → 问答吧 → 一句很蛋疼的脚本

一句很蛋疼的脚本

时间:2011-02-25

来源:互联网

有一个文本描述数据文件(用于持久化),格式如下

%Section1
i(key1 value1, key2 value 2, ...很多很多)
%Section2
i(key1 val1, key2 val2, ...很多很多)
...
...

怎么写个shell脚本,获取Section2中 key小于100的所以key value对,输出格式:  key1 val1, key2 val2
写了个很蛋疼的脚本:

result="`sed -n '/\%Section2/{n;p;}' $datafile | awk -F '[()]' '{print $2}' | awk -F ',' '{for(i=1;i<=NF;i++) {split($i,a," ");if(a[1]<100) lv[a[1]]=a[2]}} END {ORS=","; for(n in lv) print n, lv[n]}'`"

有没有简洁点的?

作者: daly88   发布时间: 2011-02-25

  1. sed -n '/\%Section2/{n;p;}' $datafile | awk '{sub(/i\(/,"",$0);sub(/\)/,"",$0);split($0,arr,",");}END{for(i in arr){split(arr[i],line," ");if(line[2]<100)print line[1]","line[2];}}'
复制代码

作者: kelehaier   发布时间: 2011-02-25

热门下载

更多