免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 艾草
打印 上一主题 下一主题

数据筛选与排列? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-01-07 15:58 |只看该作者

数据筛选与排列?

源文件ai9
1000        1175834.64
101              0.00
10101              0.00
10102              0.00
10103              0.00
10104              0.00
102              0.00
10201              0.00
103              0.00
10301              0.00
104              0.00
10401              0.00
10402              0.00
10403              0.00
105              0.00
10501              0.00
10502              0.00
10503              0.00
10504              0.00
106              0.00
10601              0.00
10602              0.00
107              0.00
10701              0.00
10702              0.00
10703              0.00
108          75405.39
10801              0.00
10802              0.00
10803              0.00
10804              0.00
10805          75405.39
109              0.00
10901              0.00
10902              0.00
110              0.00
11001              0.00
11002              0.00
11003              0.00
11004              0.00
111              0.00
11101              0.00
11102              0.00
11103              0.00
11104              0.00
115              0.00
11501              0.00
11502              0.00
11503              0.00
11504              0.00
116              0.00
11601              0.00
117              0.00
11701              0.00
118              0.00
11801              0.00
11802              0.00
121              0.00
12101              0.00
12102              0.00
12103              0.00
122              0.00
12201              0.00
12202              0.00
12203              0.00
123        1022565.50
12301              0.00
12302        1021963.00
12303              0.00
12304              0.00
12305            602.50
124              0.00
12401              0.00
125              0.00
12501              0.00
12502              0.00
12503              0.00
126              0.00
12601              0.00
12602              0.00
12603              0.00
127              0.00
12701              0.00
128              0.00
12801              0.00
129              0.00
12901              0.00
12902              0.00
131          75426.15
13101              0.00
13102           9521.52
13103          65904.63
13104              0.00
13105              0.00
13106              0.00
13107              0.00
132              0.00
13201              0.00
13202              0.00
13203              0.00
13204              0.00
13205              0.00
133              0.00
13301              0.00
13302              0.00
13302              0.00
13303              0.00
13303              0.00
13304              0.00
13304              0.00
13305              0.00
13305              0.00
13306              0.00
13307              0.00
13308              0.00
13309              0.00
13310              0.00
13311              0.00
13312              0.00
13313              0.00
13314              0.00
13315              0.00
13316              0.00
13317              0.00
13318              0.00
13319              0.00
13320              0.00
13321              0.00
13322              0.00
13323              0.00
13324              0.00
13325              0.00
13326              0.00
13327              0.00
13328              0.00
13329              0.00
13330              0.00
13331              0.00
134              0.00
13401              0.00
13402              0.00
13403              0.00
135           1001.60
13501           1001.60
13502              0.00
136              0.00
13601              0.00
13602              0.00
13603              0.00
137              0.00
13701              0.00
138              0.00
13801              0.00
141              0.00
14101              0.00
14102              0.00
14103              0.00
142              0.00
14201              0.00
14202              0.00
14203              0.00
14204              0.00
143              0.00
14301              0.00
144              0.00
14401              0.00
145              0.00
14501              0.00
146              0.00
14601              0.00
14602              0.00
14603              0.00
147              0.00
14701              0.00
14702              0.00
14703              0.00
14704              0.00
148              0.00
14801              0.00
14802              0.00
149           1436.00
14901              0.00
14902           1436.00
14903              0.00
14904              0.00
151         132059.73
15101         132059.73
152          57598.21
15201          57598.21
153         284527.54
15301          22475.00
15302         213087.41
15303          17153.25
15304          26263.24
15305           5548.64
154         172253.08
15401           8452.65
15402         157103.09
15403            811.64
15404           5885.70
155            482.40
15501            482.40
15502              0.00
15503              0.00
15504              0.00
15505              0.00
161              0.00
16101              0.00
16102              0.00
162              0.00
16201              0.00
16202              0.00
16203              0.00
163         280000.00
16301              0.00
16302         280000.00
16303              0.00
16304              0.00
16305              0.00
164              0.00
16401              0.00
165              0.00
16501              0.00
16502              0.00
16503              0.00
166              0.00
16601              0.00
16602              0.00
16603              0.00
16604              0.00
171              0.00
17101              0.00
17102              0.00
17103              0.00
17104              0.00
17105              0.00
17106              0.00
17107              0.00
17108              0.00
17109              0.00
17110              0.00
17111              0.00
17112              0.00
172              0.00
17201              0.00
174              0.00
17401              0.00
17402              0.00
17403              0.00
175              0.00
17501              0.00
17502              0.00
17503              0.00
17504              0.00
176              0.00
17601              0.00
177              0.00
17701              0.00
17702              0.00
17703              0.00
17704              0.00
178              0.00
17801              0.00
181           7685.80
18101           6741.96
18102            471.92
18103            471.92
183              0.00
18301              0.00
18302              0.00
18303              0.00
18304              0.00
18305              0.00
184              0.00
18401              0.00
185              0.00
18501              0.00
186            340.31
18601              0.00
18602              0.00
18603            340.31
18604              0.00
18605              0.00
188              0.00
18801              0.00
18802              0.00
189              0.00
18901              0.00
18902              0.00
2000         934947.07
3000              0.00
4000         240887.57
5000        1175834.64
6000        1175834.64

论坛徽章:
0
12 [报告]
发表于 2005-01-07 16:03 |只看该作者

数据筛选与排列?

我改了一下
awk '{if($1=="2000"||$1=="4000"||$1=="6000"||$1~/1[51-90]/) print $1,$2,"0.00";else print $1,"0.00",$2}' model.

结果
1000 1175834.64 0.00
101 0.00 0.00
10101 0.00 0.00
10102 0.00 0.00
10103 0.00 0.00
10104 0.00 0.00
102 0.00 0.00
10201 0.00 0.00
103 0.00 0.00
10301 0.00 0.00
104 0.00 0.00
10401 0.00 0.00
10402 0.00 0.00
10403 0.00 0.00
105 0.00 0.00
10501 0.00 0.00
10502 0.00 0.00
10503 0.00 0.00
10504 0.00 0.00
106 0.00 0.00
10601 0.00 0.00
10602 0.00 0.00
107 0.00 0.00
10701 0.00 0.00
10702 0.00 0.00
10703 0.00 0.00
108 75405.39 0.00
10801 0.00 0.00
10802 0.00 0.00
10803 0.00 0.00
10804 0.00 0.00
10805 75405.39 0.00
109 0.00 0.00
10901 0.00 0.00
10902 0.00 0.00
110 0.00 0.00
11001 0.00 0.00
11002 0.00 0.00
11003 0.00 0.00
11004 0.00 0.00
111 0.00 0.00
11101 0.00 0.00
11102 0.00 0.00
11103 0.00 0.00
11104 0.00 0.00
115 0.00 0.00
11501 0.00 0.00
11502 0.00 0.00
11503 0.00 0.00
11504 0.00 0.00
116 0.00 0.00
11601 0.00 0.00
117 0.00 0.00
11701 0.00 0.00
118 0.00 0.00
11801 0.00 0.00
11802 0.00 0.00
121 0.00 0.00
12101 0.00 0.00
12102 0.00 0.00
12103 0.00 0.00
122 0.00 0.00
12201 0.00 0.00
12202 0.00 0.00
12203 0.00 0.00
123 1022565.50 0.00
12301 0.00 0.00
12302 1021963.00 0.00
12303 0.00 0.00
12304 0.00 0.00
12305 602.50 0.00
124 0.00 0.00
12401 0.00 0.00
125 0.00 0.00
12501 0.00 0.00
12502 0.00 0.00
12503 0.00 0.00
126 0.00 0.00
12601 0.00 0.00
12602 0.00 0.00
12603 0.00 0.00
127 0.00 0.00
12701 0.00 0.00
128 0.00 0.00
12801 0.00 0.00
129 0.00 0.00
12901 0.00 0.00
12902 0.00 0.00
131 75426.15 0.00
13101 0.00 0.00
13102 9521.52 0.00
13103 65904.63 0.00
13104 0.00 0.00
13105 0.00 0.00
13106 0.00 0.00
13107 0.00 0.00
132 0.00 0.00
13201 0.00 0.00
13202 0.00 0.00
13203 0.00 0.00
13204 0.00 0.00
13205 0.00 0.00
133 0.00 0.00
13301 0.00 0.00
13302 0.00 0.00
13302 0.00 0.00
13303 0.00 0.00
13303 0.00 0.00
13304 0.00 0.00
13304 0.00 0.00
13305 0.00 0.00
13305 0.00 0.00
13306 0.00 0.00
13307 0.00 0.00
13308 0.00 0.00
13309 0.00 0.00
13310 0.00 0.00
13311 0.00 0.00
13312 0.00 0.00
13313 0.00 0.00
13314 0.00 0.00
13315 0.00 0.00
13316 0.00 0.00
13317 0.00 0.00
13318 0.00 0.00
13319 0.00 0.00
13320 0.00 0.00
13321 0.00 0.00
13322 0.00 0.00
13323 0.00 0.00
13324 0.00 0.00
13325 0.00 0.00
13326 0.00 0.00
13327 0.00 0.00
13328 0.00 0.00
13329 0.00 0.00
13330 0.00 0.00
13331 0.00 0.00
134 0.00 0.00
13401 0.00 0.00
13402 0.00 0.00
13403 0.00 0.00
135 1001.60 0.00
13501 1001.60 0.00
13502 0.00 0.00
136 0.00 0.00
13601 0.00 0.00
13602 0.00 0.00
13603 0.00 0.00
137 0.00 0.00
13701 0.00 0.00
138 0.00 0.00
13801 0.00 0.00
141 0.00 0.00
14101 0.00 0.00
14102 0.00 0.00
14103 0.00 0.00
142 0.00 0.00
14201 0.00 0.00
14202 0.00 0.00
14203 0.00 0.00
14204 0.00 0.00
143 0.00 0.00
14301 0.00 0.00
144 0.00 0.00
14401 0.00 0.00
145 0.00 0.00
14501 0.00 0.00
146 0.00 0.00
14601 0.00 0.00
14602 0.00 0.00
14603 0.00 0.00
147 0.00 0.00
14701 0.00 0.00
14702 0.00 0.00
14703 0.00 0.00
14704 0.00 0.00
148 0.00 0.00
14801 0.00 0.00
14802 0.00 0.00
149 1436.00 0.00
14901 0.00 0.00
14902 1436.00 0.00
14903 0.00 0.00
14904 0.00 0.00
151 132059.73 0.00
15101 132059.73 0.00
152 57598.21 0.00
15201 57598.21 0.00
153 284527.54 0.00
15301 22475.00 0.00
15302 213087.41 0.00
15303 17153.25 0.00
15304 26263.24 0.00
15305 5548.64 0.00
154 172253.08 0.00
15401 8452.65 0.00
15402 157103.09 0.00
15403 811.64 0.00
15404 5885.70 0.00
155 482.40 0.00
15501 482.40 0.00
15502 0.00 0.00
15503 0.00 0.00
15504 0.00 0.00
15505 0.00 0.00
161 0.00 0.00
16101 0.00 0.00
16102 0.00 0.00
162 0.00 0.00
16201 0.00 0.00
16202 0.00 0.00
16203 0.00 0.00
163 280000.00 0.00
16301 0.00 0.00
16302 280000.00 0.00
16303 0.00 0.00
16304 0.00 0.00
16305 0.00 0.00
164 0.00 0.00
16401 0.00 0.00
165 0.00 0.00
16501 0.00 0.00
16502 0.00 0.00
16503 0.00 0.00
166 0.00 0.00
16601 0.00 0.00
16602 0.00 0.00
16603 0.00 0.00
16604 0.00 0.00
171 0.00 0.00
17101 0.00 0.00
17102 0.00 0.00
17103 0.00 0.00
17104 0.00 0.00
17105 0.00 0.00
17106 0.00 0.00
17107 0.00 0.00
17108 0.00 0.00
17109 0.00 0.00
17110 0.00 0.00
17111 0.00 0.00
17112 0.00 0.00
172 0.00 0.00
17201 0.00 0.00
174 0.00 0.00
17401 0.00 0.00
17402 0.00 0.00
17403 0.00 0.00
175 0.00 0.00
17501 0.00 0.00
17502 0.00 0.00
17503 0.00 0.00
17504 0.00 0.00
176 0.00 0.00
17601 0.00 0.00
177 0.00 0.00
17701 0.00 0.00
17702 0.00 0.00
17703 0.00 0.00
17704 0.00 0.00
178 0.00 0.00
17801 0.00 0.00
181 7685.80 0.00
18101 6741.96 0.00
18102 471.92 0.00
18103 471.92 0.00
183 0.00 0.00
18301 0.00 0.00
18302 0.00 0.00
18303 0.00 0.00
18304 0.00 0.00
18305 0.00 0.00
184 0.00 0.00
18401 0.00 0.00
185 0.00 0.00
18501 0.00 0.00
186 340.31 0.00
18601 0.00 0.00
18602 0.00 0.00
18603 340.31 0.00
18604 0.00 0.00
18605 0.00 0.00
188 0.00 0.00
18801 0.00 0.00
18802 0.00 0.00
189 0.00 0.00
18901 0.00 0.00
18902 0.00 0.00
2000 934947.07 0.00
3000 0.00 0.00
4000 240887.57 0.00
5000 0.00 1175834.64
6000 1175834.64 0.00
像108 75405.39 0.00这样的除150-190以上的101-150科目余额应该在第3列?

论坛徽章:
0
13 [报告]
发表于 2005-01-08 13:38 |只看该作者

数据筛选与排列?

guangzongy,帮我看看问题出在哪里?

论坛徽章:
0
14 [报告]
发表于 2005-01-10 10:56 |只看该作者

数据筛选与排列?

[kennyyu@haha zz]$ awk '{if ($1=="2000"||$1=="4000"||$1=="6000"||$1~/18[4-9]/) print $1,$2,"0.00";else print $1,"0.00",$2}' model.file
1000 0.00 1175834.64
101 0.00 0.00
10101 0.00 0.00
10102 0.00 0.00
10103 0.00 0.00
10104 0.00 0.00
102 0.00 0.00
10201 0.00 0.00
103 0.00 0.00
10301 0.00 0.00
104 0.00 0.00
10401 0.00 0.00
10402 0.00 0.00
10403 0.00 0.00
105 0.00 0.00
10501 0.00 0.00
10502 0.00 0.00
10503 0.00 0.00
10504 0.00 0.00
106 0.00 0.00
10601 0.00 0.00
10602 0.00 0.00
107 0.00 0.00
10701 0.00 0.00
10702 0.00 0.00
10703 0.00 0.00
108 0.00 75405.39
10801 0.00 0.00
10802 0.00 0.00
10803 0.00 0.00
10804 0.00 0.00
10805 0.00 75405.39
109 0.00 0.00
10901 0.00 0.00
10902 0.00 0.00
110 0.00 0.00
11001 0.00 0.00
11002 0.00 0.00
11003 0.00 0.00
11004 0.00 0.00
111 0.00 0.00
11101 0.00 0.00
11102 0.00 0.00
11103 0.00 0.00
11104 0.00 0.00
115 0.00 0.00
11501 0.00 0.00
11502 0.00 0.00
11503 0.00 0.00
11504 0.00 0.00
116 0.00 0.00
11601 0.00 0.00
117 0.00 0.00
11701 0.00 0.00
118 0.00 0.00
11801 0.00 0.00
11802 0.00 0.00
121 0.00 0.00
12101 0.00 0.00
12102 0.00 0.00
12103 0.00 0.00
122 0.00 0.00
12201 0.00 0.00
12202 0.00 0.00
12203 0.00 0.00
123 0.00 1022565.50
12301 0.00 0.00
12302 0.00 1021963.00
12303 0.00 0.00
12304 0.00 0.00
12305 0.00 602.50
124 0.00 0.00
12401 0.00 0.00
125 0.00 0.00
12501 0.00 0.00
12502 0.00 0.00
12503 0.00 0.00
126 0.00 0.00
12601 0.00 0.00
12602 0.00 0.00
12603 0.00 0.00
127 0.00 0.00
12701 0.00 0.00
128 0.00 0.00
12801 0.00 0.00
129 0.00 0.00
12901 0.00 0.00
12902 0.00 0.00
131 0.00 75426.15
13101 0.00 0.00
13102 0.00 9521.52
13103 0.00 65904.63
13104 0.00 0.00
13105 0.00 0.00
13106 0.00 0.00
13107 0.00 0.00
132 0.00 0.00
13201 0.00 0.00
13202 0.00 0.00
13203 0.00 0.00
13204 0.00 0.00
13205 0.00 0.00
133 0.00 0.00
13301 0.00 0.00
13302 0.00 0.00
13302 0.00 0.00
13303 0.00 0.00
13303 0.00 0.00
13304 0.00 0.00
13304 0.00 0.00
13305 0.00 0.00
13305 0.00 0.00
13306 0.00 0.00
13307 0.00 0.00
13308 0.00 0.00
13309 0.00 0.00
13310 0.00 0.00
13311 0.00 0.00
13312 0.00 0.00
13313 0.00 0.00
13314 0.00 0.00
13315 0.00 0.00
13316 0.00 0.00
13317 0.00 0.00
13318 0.00 0.00
13319 0.00 0.00
13320 0.00 0.00
13321 0.00 0.00
13322 0.00 0.00
13323 0.00 0.00
13324 0.00 0.00
13325 0.00 0.00
13326 0.00 0.00
13327 0.00 0.00
13328 0.00 0.00
13329 0.00 0.00
13330 0.00 0.00
13331 0.00 0.00
134 0.00 0.00
13401 0.00 0.00
13402 0.00 0.00
13403 0.00 0.00
135 0.00 1001.60
13501 0.00 1001.60
13502 0.00 0.00
136 0.00 0.00
13601 0.00 0.00
13602 0.00 0.00
13603 0.00 0.00
137 0.00 0.00
13701 0.00 0.00
138 0.00 0.00
13801 0.00 0.00
141 0.00 0.00
14101 0.00 0.00
14102 0.00 0.00
14103 0.00 0.00
142 0.00 0.00
14201 0.00 0.00
14202 0.00 0.00
14203 0.00 0.00
14204 0.00 0.00
143 0.00 0.00
14301 0.00 0.00
144 0.00 0.00
14401 0.00 0.00
145 0.00 0.00
14501 0.00 0.00
146 0.00 0.00
14601 0.00 0.00
14602 0.00 0.00
14603 0.00 0.00
147 0.00 0.00
14701 0.00 0.00
14702 0.00 0.00
14703 0.00 0.00
14704 0.00 0.00
148 0.00 0.00
14801 0.00 0.00
14802 0.00 0.00
149 0.00 1436.00
14901 0.00 0.00
14902 0.00 1436.00
14903 0.00 0.00
14904 0.00 0.00
151 0.00 132059.73
15101 0.00 132059.73
152 0.00 57598.21
15201 0.00 57598.21
153 0.00 284527.54
15301 0.00 22475.00
15302 0.00 213087.41
15303 0.00 17153.25
15304 0.00 26263.24
15305 0.00 5548.64
154 0.00 172253.08
15401 0.00 8452.65
15402 0.00 157103.09
15403 0.00 811.64
15404 0.00 5885.70
155 0.00 482.40
15501 0.00 482.40

15502 0.00 0.00
15503 0.00 0.00
15504 0.00 0.00
15505 0.00 0.00
161 0.00 0.00
16101 0.00 0.00
16102 0.00 0.00
162 0.00 0.00
16201 0.00 0.00
16202 0.00 0.00
16203 0.00 0.00
163 0.00 280000.00
16301 0.00 0.00
16302 0.00 280000.00
16303 0.00 0.00
16304 0.00 0.00
16305 0.00 0.00
164 0.00 0.00
16401 0.00 0.00
165 0.00 0.00
16501 0.00 0.00
16502 0.00 0.00
16503 0.00 0.00
166 0.00 0.00
16601 0.00 0.00
16602 0.00 0.00
16603 0.00 0.00
16604 0.00 0.00
171 0.00 0.00
17101 0.00 0.00
17102 0.00 0.00
17103 0.00 0.00
17104 0.00 0.00
17105 0.00 0.00
17106 0.00 0.00
17107 0.00 0.00
17108 0.00 0.00
17109 0.00 0.00
17110 0.00 0.00
17111 0.00 0.00
17112 0.00 0.00
172 0.00 0.00
17201 0.00 0.00
174 0.00 0.00
17401 0.00 0.00
17402 0.00 0.00
17403 0.00 0.00
175 0.00 0.00
17501 0.00 0.00
17502 0.00 0.00
17503 0.00 0.00
17504 0.00 0.00
176 0.00 0.00
17601 0.00 0.00
177 0.00 0.00
17701 0.00 0.00
17702 0.00 0.00
17703 0.00 0.00
17704 0.00 0.00
178 0.00 0.00
17801 0.00 0.00
181 0.00 7685.80
18101 0.00 6741.96
18102 0.00 471.92
18103 0.00 471.92

183 0.00 0.00
18301 0.00 0.00
18302 0.00 0.00
18303 0.00 0.00
18304 0.00 0.00
18305 0.00 0.00
184 0.00 0.00
18401 0.00 0.00
185 0.00 0.00
18501 0.00 0.00
186 340.31 0.00
18601 0.00 0.00
18602 0.00 0.00
18603 340.31 0.00
18604 0.00 0.00
18605 0.00 0.00
188 0.00 0.00
18801 0.00 0.00
18802 0.00 0.00
189 0.00 0.00
18901 0.00 0.00
18902 0.00 0.00
2000 934947.07 0.00
3000 0.00 0.00
4000 240887.57 0.00
5000 0.00 1175834.64
6000 1175834.64 0.00


通过运行结果中用颜色标记出来的记录看,我的运行结果完全是按你的要求做的:key为2000、4000、6000、184~189的所有科目的余额放在第二列的(用红色标记);其它放第三列

另外你那样改是不对的,也怪我没有说清楚
我用18[4-9]是表示前2个字符是18,第三个字符则是4、5、6、7、8、9中的任意一个。需要注意的是[]中的内容是单个字符的集合,比如[a-z]。
[51-90]表示第3个字符是0、1、2、3、4、5、6、7、8、9中的任意一个,结果就不对了。
你试试我的代码,如果不对可以把代码和运行结果一起贴出来(就像我提供的那样 ),便于查问题。

论坛徽章:
0
15 [报告]
发表于 2005-01-10 15:33 |只看该作者

数据筛选与排列?

明白了,[]的意思!
那如何表示150-190的科目呢?

论坛徽章:
0
16 [报告]
发表于 2005-01-11 10:12 |只看该作者

数据筛选与排列?

原帖由 "艾草" 发表:
?
那如何表示150-190的科目呢?

这位兄台,你到底需要怎么样的结果呀
都变了好几次了   

筛选150-190的纪录的方法这里提供两种:
1、比较通用一点的,只要修改substr($1,0,3)>=150&&substr($1,0,3)<=190部分的代码就可以改变筛选范围!但是值得注意的是这里在进行值比较时只关心前三位,因为根据的你的需求,15001的科目也在范围中。
  1. awk '{if(substr($1,0,3)>=150&&substr($1,0,3)<=190) print $1,$2,"0.00";else print $1,"0.00",$2}' model.file
复制代码

2、投机一点的
  1. awk '{if($1~/1[5-8][0-9]/||$1~/190/) print $1,$2,"0.00";else print $1,"0.00",$2}' model.file
复制代码


我想使用第一种方法应该可以筛选出你想要的结果了 :em11:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP