jimmy14k 发表于 2020-06-09 17:14

文本处理,求大神帮忙

本帖最后由 jimmy14k 于 2020-06-09 17:16 编辑

                        { "ent_id" : MinKey, "_id" : MinKey } -->> {
                              "ent_id" : NumberLong("1528943377121280900"),
                              "_id" : ObjectId("58104eba44ae018c2915531e")
                        } on : shard04 Timestamp(685, 0)
                        {
                              "ent_id" : NumberLong("1528943377121280900"),
                              "_id" : ObjectId("58104eba44ae018c2915531e")
                        } -->> {
                              "ent_id" : NumberLong("1549423145385985900"),
                              "_id" : ObjectId("581f2f6c44ae0a9b433a039c")
                        } on : shard04 Timestamp(331, 1)
                        {
                              "ent_id" : NumberLong("1549423145385985900"),
                              "_id" : ObjectId("581f2f6c44ae0a9b433a039c")
                        } -->> {
                              "ent_id" : NumberLong("1549423145385985900"),
                              "_id" : ObjectId("584b9f88e4b034d148035121")
                        } on : shard04 Timestamp(680, 0)



想要的结果:
MinKey,MinKey,NumberLong("1528943377121280900"),ObjectId("58104eba44ae018c2915531e"),shard04

NumberLong("1528943377121280900"),ObjectId("58104eba44ae018c2915531e"),NumberLong("1549423145385985900"),ObjectId("581f2f6c44ae0a9b433a039c"),shard04


NumberLong("1549423145385985900"), ObjectId("581f2f6c44ae0a9b433a039c"),NumberLong("1549423145385985900"),ObjectId("584b9f88e4b034d148035121"),shard04



最终得到三行数据,字段间逗号分隔,求大神帮忙......




jimmy14k 发表于 2020-06-09 17:49

awk -F '[,: ]+' 'BEGIN{RS="Timestamp"}{gsub(/\n/,",");a="";for(i=1;i<=NF;i++){if($i~/_id/){a=a?(a","$(i+1)):$(i+1)}}print a","$(NF-1)}' t.txt


勉强写了个,差不多可以满足

zxy877298415 发表于 2020-06-10 17:53

回复 1# jimmy14k

awk -F '[ {]+ "ent_id" : |[, ]+"_id" : |[ ]+} -->> {|[ ]+} on : |,$| +{

'{for(i=1;i<=NF;i++) {if($i) {if($0~/Timestamp/) {sub("Time.*","",$0);print $i""} else printf $i","}}}' file
MinKey,MinKey,NumberLong("1528943377121280900"),ObjectId("58104eba44ae018c2915531e"),shard04
NumberLong("1528943377121280900"),ObjectId("58104eba44ae018c2915531e"),NumberLong("1549423145385985900"),ObjectId("581f2f6c44ae0a9b433a039c"),shard04
NumberLong("1549423145385985900"),ObjectId("581f2f6c44ae0a9b433a039c"),NumberLong("1549423145385985900"),ObjectId("584b9f88e4b034d148035121"),shard04

zxy877298415 发表于 2020-06-10 17:54

回复 1# jimmy14k

awk -F '[ {]+ "ent_id" : |[, ]+"_id" : |[ ]+} -->> {|[ ]+} on : |,$| +{

'{for(i=1;i<=NF;i++) {if($i) {if($0~/Timestamp/) {sub("Time.*","",$0);print $i""} else printf $i","}}}' file
MinKey,MinKey,NumberLong("1528943377121280900"),ObjectId("58104eba44ae018c2915531e"),shard04
NumberLong("1528943377121280900"),ObjectId("58104eba44ae018c2915531e"),NumberLong("1549423145385985900"),ObjectId("581f2f6c44ae0a9b433a039c"),shard04
NumberLong("1549423145385985900"),ObjectId("581f2f6c44ae0a9b433a039c"),NumberLong("1549423145385985900"),ObjectId("584b9f88e4b034d148035121"),shard04

页: [1]
查看完整版本: 文本处理,求大神帮忙