- 论坛徽章:
- 0
|
原帖由 sthcf 于 2008-12-15 20:12 发表 ![]()
已经差不多是我要的东西了,但是如果出现像下面这样的顺序的话,会丢失一次6行的循环,如下面这个是可以出来两行的,但这脚本跑的话应该只会出来一行(另外 ~ 这个符号也需要去掉,所有域之间用|做分隔符)
...
我在家没有环境调试
不过可以在
第一个if后面用
while(/解析清单/)getline
- [root@rhel5test test]# cat ss.awk
- BEGIN{
- FS="[]|[]+"
- }
- {if(/解析清单/){
- key1=$1$4$11
- getline
- while(/解析清单/){key1=$1$4$11;getline}
-
-
- if(/转换后帐单科目/){
- gsub(/.*转换后帐单科目: /,"",$0)
- gsub(/ FILE:.*/,"",$0)
- key2=$0
- getline
- if(/普通单 FILE:/ || /长单 FILE:/){
- getline
- if(/Ebox Info:/){
- gsub(/~/," ",$4)
- key3=$4
- getline
- if(/After Woff Ebox Info:/){
- gsub(/~/," ",$4)
- key4=$4
- getline
- if(/销帐结果/){
- gsub(/~/," ",$4)
- key5=$4
- {print key1,key2,key3,key4,key5}
- next
- }
- }
- }
- }
- }
- }
- }
复制代码
does it work?
呵呵忘了改~这个符号了改了
[ 本帖最后由 nuclearxin 于 2008-12-15 22:26 编辑 ] |
|