انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: چطور چندین سطر یا ستون رو باهم مقایسه کنم؟  (دفعات بازدید: 4963 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
سلام دوستان عزیز.
من یه فایل تکست دارم که 5 تا ستون داره در چندین هزار سطر.
چطور به وسیله ی پایتون 3 میتونم از بین اون سطرهایی که ردیف سوم و چهارمشون یکیه، فقط سطری رو نگه دارم که ردیف پنجمش از همه بزرگتره؟
نمونه ی فایل هم به صورت زیره :
511972 1 179.52 278.08 278.08
511973 1 183.04 278.08 278.08
511974 1 186.56 278.08 278.08
511975 1 190.08 278.08 278.08
511976 1 193.6 278.08 278.08
511977 1 197.12 278.08 278.08
511978 1 200.64 278.08 278.08
511979 1 204.16 278.08 278.08
511980 1 207.68 278.08 278.08
511981 1 211.2 278.08 278.08
511982 1 214.72 278.08 278.08
511983 1 218.24 278.08 278.08
511984 1 221.76 278.08 278.08
511985 1 225.28 278.08 278.08
511986 1 228.8 278.08 278.08
511987 1 232.32 278.08 278.08
511988 1 235.84 278.08 278.08
511989 1 239.36 278.08 278.08
511990 1 242.88 278.08 278.08
511991 1 246.4 278.08 278.08
511992 1 249.92 278.08 278.08
511993 1 253.44 278.08 278.08
511994 1 256.96 278.08 278.08
511995 1 260.48 278.08 278.08
511996 1 264 278.08 278.08
511997 1 267.52 278.08 278.08
511998 1 271.04 278.08 278.08
511999 1 274.56 278.08 278.08
512000 1 278.08 278.08 278.08
ITEM: TIMESTEP
20      2e+06
ITEM: NUMBER OF ATOMS
512000
ITEM: BOX BOUNDS
0 281.6
0 281.6
0 281.6
ITEM: ATOMS id type x y z
1 2 0 0 0
2 2 3.52 0 0
3 2 7.04 0 0
4 2 10.56 0 0
5 2 14.08 0 0
6 2 17.6 0 0
7 2 21.12 0 0
8 2 24.64 0 0
9 2 28.16 0 0
10 2 31.68 0 0
11 2 35.2 0 0
12 2 38.72 0 0
13 2 42.24 0 0
14 2 45.76 0 0
15 2 49.28 0 0
16 2 52.8 0 0
17 2 56.32 0 0
18 2 59.84 0 0
19 2 63.36 0 0
20 2 66.88 0 0
21 2 70.4 0 0
22 2 73.92 0 0
23 2 77.44 0 0
24 2 80.96 0 0
25 2 84.48 0 0
26 2 88 0 0
27 2 91.52 0 0
28 2 95.04 0 0
29 2 98.56 0 0
30 2 102.08 0 0
31 2 105.6 0 0
32 2 109.12 0 0
33 2 112.64 0 0
34 2 116.16 0 0
35 2 119.68 0 0
36 2 123.2 0 0
37 2 126.72 0 0
38 2 130.24 0 0
39 2 133.76 0 0
40 2 137.28 0 0
41 2 140.8 0 0
42 2 144.32 0 0
43 2 147.84 0 0
44 2 151.36 0 0
45 2 154.88 0 0
46 2 158.4 0 0
47 2 161.92 0 0
48 2 165.44 0 0
49 2 168.96 0 0
50 2 172.48 0 0
51 2 176 0 0
52 2 179.52 0 0
53 2 183.04 0 0
54 2 186.56 0 0
55 2 190.08 0 0
56 2 193.6 0 0
57 2 197.12 0 0
58 2 200.64 0 0
59 2 204.16 0 0
60 2 207.68 0 0
61 2 211.2 0 0
62 2 214.72 0 0
63 2 218.24 0 0
64 2 221.76 0 0
65 2 225.28 0 0
66 2 228.8 0 0
67 2 232.32 0 0
68 2 235.84 0 0
69 2 239.36 0 0
70 2 242.88 0 0
71 2 246.4 0 0
72 2 249.92 0 0
73 2 253.44 0 0
74 2 256.96 0 0
75 2 260.48 0 0
76 2 264 0 0
77 2 267.52 0 0
78 2 271.04 0 0
79 2 274.56 0 0
80 2 278.08 0 0
81 2 0 3.52 0
82 2 3.52 3.52 0
83 2 7.04 3.52 0
84 2 10.56 3.52 0
85 2 14.08 3.52 0
86 2 17.6 3.52 0
87 2 21.12 3.52 0
88 2 24.64 3.52 0
89 2 28.16 3.52 0
90 2 31.68 3.52 0
91 2 35.2 3.52 0
92 2 38.72 3.52 0
93 2 42.24 3.52 0
94 2 45.76 3.52 0
95 2 49.28 3.52 0
96 2 52.8 3.52 0
97 2 56.32 3.52 0
98 2 59.84 3.52 0
99 2 63.36 3.52 0
100 2 66.88 3.52 0
101 2 70.4 3.52 0
102 2 73.92 3.52 0
103 2 77.44 3.52 0
104 2 80.96 3.52 0
105 2 84.48 3.52 0
106 2 88 3.52 0
107 2 91.52 3.52 0
108 2 95.04 3.52 0
109 2 98.56 3.52 0
110 2 102.08 3.52 0
111 2 105.6 3.52 0
112 2 109.12 3.52 0
113 2 112.64 3.52 0
114 2 116.16 3.52 0
115 2 119.68 3.52 0
116 2 123.2 3.52 0
117 2 126.72 3.52 0
118 2 130.24 3.52 0
119 2 133.76 3.52 0
120 2 137.28 3.52 0
121 2 140.8 3.52 0
122 2 144.32 3.52 0
123 2 147.84 3.52 0
124 2 151.36 3.52 0
125 2 154.88 3.52 0
126 2 158.4 3.52 0
127 2 161.92 3.52 0
128 2 165.44 3.52 0
129 2 168.96 3.52 0
130 2 172.48 3.52 0
131 2 176 3.52 0
132 2 179.52 3.52 0
133 2 183.04 3.52 0
134 2 186.56 3.52 0
135 2 190.08 3.52 0
136 2 193.6 3.52 0
137 2 197.12 3.52 0
138 2 200.64 3.52 0
139 2 204.16 3.52 0
140 2 207.68 3.52 0
141 2 211.2 3.52 0
142 2 214.72 3.52 0
143 2 218.24 3.52 0
144 2 221.76 3.52 0
145 2 225.28 3.52 0
146 2 228.8 3.52 0
147 2 232.32 3.52 0
148 2 235.84 3.52 0
149 2 239.36 3.52 0
150 2 242.88 3.52 0
151 2 246.4 3.52 0
152 2 249.92 3.52 0
153 2 253.44 3.52 0
154 2 256.96 3.52 0
155 2 260.48 3.52 0
156 2 264 3.52 0
157 2 267.52 3.52 0
158 2 271.04 3.52 0
159 2 274.56 3.52 0
160 2 278.08 3.52 0
161 2 0 7.04 0
162 2 3.52 7.04 0
163 2 7.04 7.04 0
164 2 10.56 7.04 0
165 2 14.08 7.04 0
166 2 17.6 7.04 0
167 2 21.12 7.04 0
168 2 24.64 7.04 0
169 2 28.16 7.04 0
170 2 31.68 7.04 0
171 2 35.2 7.04 0
172 2 38.72 7.04 0
173 2 42.24 7.04 0
174 2 45.76 7.04 0
175 2 49.28 7.04 0
176 2 52.8 7.04 0
177 2 56.32 7.04 0
178 2 59.84 7.04 0
179 2 63.36 7.04 0
180 2 66.88 7.04 0
181 2 70.4 7.04 0
182 2 73.92 7.04 0
183 2 77.44 7.04 0
184 2 80.96 7.04 0
185 2 84.48 7.04 0
186 2 88 7.04 0
187 2 91.52 7.04 0
188 2 95.04 7.04 0
189 2 98.56 7.04 0
190 2 102.08 7.04 0
191 2 105.6 7.04 0
192 2 109.12 7.04 0
193 2 112.64 7.04 0
194 2 116.16 7.04 0
195 2 119.68 7.04 0
196 2 123.2 7.04 0
197 2 126.72 7.04 0
198 2 130.24 7.04 0
199 2 133.76 7.04 0
200 2 137.28 7.04 0
201 2 140.8 7.04 0
202 2 144.32 7.04 0
203 2 147.84 7.04 0
204 2 151.36 7.04 0
205 2 154.88 7.04 0
206 2 158.4 7.04 0
207 2 161.92 7.04 0
208 2 165.44 7.04 0
209 2 168.96 7.04 0
210 2 172.48 7.04 0
211 2 176 7.04 0
212 2 179.52 7.04 0
213 2 183.04 7.04 0
214 2 186.56 7.04 0
215 2 190.08 7.04 0
216 2 193.6 7.04 0
217 2 197.12 7.04 0
218 2 200.64 7.04 0
219 2 204.16 7.04 0
220 2 207.68 7.04 0
221 2 211.2 7.04 0
222 2 214.72 7.04 0
223 2 218.24 7.04 0
224 2 221.76 7.04 0
225 2 225.28 7.04 0
226 2 228.8 7.04 0
227 2 232.32 7.04 0
228 2 235.84 7.04 0
229 2 239.36 7.04 0
230 2 242.88 7.04 0
231 2 246.4 7.04 0
232 2 249.92 7.04 0
233 2 253.44 7.04 0
234 2 256.96 7.04 0
235 2 260.48 7.04 0
236 2 264 7.04 0
237 2 267.52 7.04 0
238 2 271.04 7.04 0
239 2 274.56 7.04 0
240 2 278.08 7.04 0
241 2 0 10.56 0
242 2 3.52 10.56 0
243 2 7.04 10.56 0
244 2 10.56 10.56 0
245 2 14.08 10.56 0
246 2 17.6 10.56 0
247 2 21.12 10.56 0
248 2 24.64 10.56 0
249 2 28.16 10.56 0
250 2 31.68 10.56 0
251 2 35.2 10.56 0
252 2 38.72 10.56 0
253 2 42.24 10.56 0
254 2 45.76 10.56 0
255 2 49.28 10.56 0
256 2 52.8 10.56 0
257 2 56.32 10.56 0
258 2 59.84 10.56 0
259 2 63.36 10.56 0
260 2 66.88 10.56 0
261 2 70.4 10.56 0
262 2 73.92 10.56 0
263 2 77.44 10.56 0
264 2 80.96 10.56 0
265 2 84.48 10.56 0
266 2 88 10.56 0
267 2 91.52 10.56 0
268 2 95.04 10.56 0
269 2 98.56 10.56 0
270 2 102.08 10.56 0
271 2 105.6 10.56 0
272 2 109.12 10.56 0
273 2 112.64 10.56 0
274 2 116.16 10.56 0
275 2 119.68 10.56 0
276 2 123.2 10.56 0
277 2 126.72 10.56 0
278 2 130.24 10.56 0
279 2 133.76 10.56 0
280 2 137.28 10.56 0
281 2 140.8 10.56 0
282 2 144.32 10.56 0
283 2 147.84 10.56 0
284 2 151.36 10.56 0
285 2 154.88 10.56 0
286 2 158.4 10.56 0
287 2 161.92 10.56 0
288 2 165.44 10.56 0
289 2 168.96 10.56 0
290 2 172.48 10.56 0
291 2 176 10.56 0
292 2 179.52 10.56 0
293 2 183.04 10.56 0
294 2 186.56 10.56 0
295 2 190.08 10.56 0
296 2 193.6 10.56 0
297 2 197.12 10.56 0
298 2 200.64 10.56 0
299 2 204.16 10.56 0
300 2 207.68 10.56 0
301 2 211.2 10.56 0
302 2 214.72 10.56 0
303 2 218.24 10.56 0
304 2 221.76 10.56 0
305 2 225.28 10.56 0
306 2 228.8 10.56 0
307 2 232.32 10.56 0
308 2 235.84 10.56 0
309 2 239.36 10.56 0
310 2 242.88 10.56 0
311 2 246.4 10.56 0
312 2 249.92 10.56 0
313 2 253.44 10.56 0
314 2 256.96 10.56 0
315 2 260.48 10.56 0
316 2 264 10.56 0
317 2 267.52 10.56 0
318 2 271.04 10.56 0
319 2 274.56 10.56 0
320 2 278.08 10.56 0
321 2 0 14.08 0
322 2 3.52 14.08 0
323 2 7.04 14.08 0
324 2 10.56 14.08 0
325 2 14.08 14.08 0
326 2 17.6 14.08 0
327 2 21.12 14.08 0
328 2 24.64 14.08 0
329 2 28.16 14.08 0
330 2 31.68 14.08 0
331 2 35.2 14.08 0
332 2 38.72 14.08 0
333 2 42.24 14.08 0
334 2 45.76 14.08 0
335 2 49.28 14.08 0
336 2 52.8 14.08 0
337 2 56.32 14.08 0
338 2 59.84 14.08 0
339 2 63.36 14.08 0
340 2 66.88 14.08 0
341 2 70.4 14.08 0
342 2 73.92 14.08 0
343 2 77.44 14.08 0
344 2 80.96 14.08 0
345 2 84.48 14.08 0
346 2 88 14.08 0
347 2 91.52 14.08 0
348 2 95.04 14.08 0
349 2 98.56 14.08 0
350 2 102.08 14.08 0
351 2 105.6 14.08 0
352 2 109.12 14.08 0
353 2 112.64 14.08 0
354 2 116.16 14.08 0
355 2 119.68 14.08 0
356 2 123.2 14.08 0
357 2 126.72 14.08 0
358 2 130.24 14.08 0
359 2 133.76 14.08 0
360 2 137.28 14.08 0
361 2 140.8 14.08 0
362 2 144.32 14.08 0
363 2 147.84 14.08 0
364 2 151.36 14.08 0
365 2 154.88 14.08 0
366 2 158.4 14.08 0
367 2 161.92 14.08 0
368 2 165.44 14.08 0
369 2 168.96 14.08 0
370 2 172.48 14.08 0
371 2 176 14.08 0
372 2 179.52 14.08 0
373 2 183.04 14.08 0
374 2 186.56 14.08 0
375 2 190.08 14.08 0
376 2 193.6 14.08 0
377 2 197.12 14.08 0
378 2 200.64 14.08 0
379 2 204.16 14.08 0
380 2 207.68 14.08 0
381 2 211.2 14.08 0
382 2 214.72 14.08 0
383 2 218.24 14.08 0
384 2 221.76 14.08 0
385 2 225.28 14.08 0
386 2 228.8 14.08 0
387 2 232.32 14.08 0
388 2 235.84 14.08 0
389 2 239.36 14.08 0
390 2 242.88 14.08 0
391 2 246.4 14.08 0
392 2 249.92 14.08 0
393 2 253.44 14.08 0
394 2 256.96 14.08 0
395 2 260.48 14.08 0
396 2 264 14.08 0
397 2 267.52 14.08 0
398 2 271.04 14.08 0
399 2 274.56 14.08 0
400 2 278.08 14.08 0
401 2 0 17.6 0
402 2 3.52 17.6 0
403 2 7.04 17.6 0
404 2 10.56 17.6 0
405 2 14.08 17.6 0
406 2 17.6 17.6 0
407 2 21.12 17.6 0
408 2 24.64 17.6 0
409 2 28.16 17.6 0
410 2 31.68 17.6 0
411 2 35.2 17.6 0
412 2 38.72 17.6 0
413 2 42.24 17.6 0
414 2 45.76 17.6 0
415 2 49.28 17.6 0
416 2 52.8 17.6 0
417 2 56.32 17.6 0
418 2 59.84 17.6 0
419 2 63.36 17.6 0
420 2 66.88 17.6 0
421 2 70.4 17.6 0
422 2 73.92 17.6 0
423 2 77.44 17.6 0
424 2 80.96 17.6 0
425 2 84.48 17.6 0
426 2 88 17.6 0
427 2 91.52 17.6 0
428 2 95.04 17.6 0
429 2 98.56 17.6 0
430 2 102.08 17.6 0
431 2 105.6 17.6 0
432 2 109.12 17.6 0
433 2 112.64 17.6 0
434 2 116.16 17.6 0
435 2 119.68 17.6 0
436 2 123.2 17.6 0
« آخرین ویرایش: 23 اسفند 1394، 07:25 ب‌ظ توسط oostaa »

آفلاین سلمان م.

  • ناظر انجمن
  • *
  • ارسال: 4106
  • جنسیت : پسر
  • GNU Operating System - سیستم عامل گنو
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #1 : 18 اسفند 1394، 11:55 ب‌ظ »
خودت تا کجاش رفتی؟ بگو مشکلت کجاست.

آفلاین احسان فعالپور

  • Sr. Member
  • *
  • ارسال: 408
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #2 : 19 اسفند 1394، 12:01 ق‌ظ »
سلام.
یه خورده ابهام در مورد سوالتون برام بوجود اومده، اگه رفعش کنید شاید بتونم کمکتون کنم.
طبق این نتایج:

ehsan@ehsan-SVF152190X:~/Desktop/scripting/tmp$ awk -vOFS="\t" 'NF==5 && $3==$4 {print $3, $4,$5}' source | sort -n
0 0 0
3.52 3.52 0
7.04 7.04 0
10.56 10.56 0
14.08 14.08 0
17.6 17.6 0
278.08 278.08 278.08
از بین این دیتاهایی که گذاشتید من تمام سطرهای پنج ستونه‌ای که ستون سوم و چهارمش با هم برابر هستند رو چاپ کردم.
منتها ابهام اینجاست که از هیچ کدوم از این طرها شما دو تا ندارید که بخواید طبق مقدار ستون پنجم انتخابشون کنید.
عضو ارشد فدراسیون بیکاران ایران FBI

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #3 : 19 اسفند 1394، 12:20 ق‌ظ »
کاملا حرف شما درسته . این قسمتی از جواب برنامه ی خودم بود که متاسفانه توشون ستون سوم و چهارم تکرار نشدن، اما من میخوام از بین اون ستون هایی که ردیف سوم و چهارمشون برابرن،فقط اون سطری باقی بمونه که ردیف پنجمش بزرگتر از همه س . ایا این برنامه این کارو میکنه ؟

آفلاین احسان فعالپور

  • Sr. Member
  • *
  • ارسال: 408
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #4 : 19 اسفند 1394، 01:32 ق‌ظ »
کاملا حرف شما درسته . این قسمتی از جواب برنامه ی خودم بود که متاسفانه توشون ستون سوم و چهارم تکرار نشدن، اما من میخوام از بین اون ستون هایی که ردیف سوم و چهارمشون برابرن،فقط اون سطری باقی بمونه که ردیف پنجمش بزرگتر از همه س . ایا این برنامه این کارو میکنه ؟

واللا در حال حاضر الگوریتمی که بتونه خیلی بهینه این کار رو براتون انجام بده به ذهنم نمیرسه(لااقل با پایتون)، باید روش فکر کنم. ولی این اسکریپت AWK کاری که میخواید رو انجام میده.(امیدوارم ترتیب سطرها مهم نباشه، که البته میشه ترتیب سطرها رو هم حفظ کرد که به نظرم زیاد برای پرفورمنس اسکریپت خوب نیست.)

#!/bin/bash

awk '
NF==5 && $3==$4 {
if ($3 in max5){
if ($5 > max5[$3]){
max5[$3]=$5
lineHolder[$3]=$0
}
}else{
max5[$3]=$5
lineHolder[$3]=$0
}
}
NF==5 && $3!=$4 {
print
}
END {
for (i in lineHolder){
print lineHolder[i]
}
delete max5
delete lineHolder
}
' "$1" | sort -n | column -t

دیتاهایی که برای تست انتخاب کردم:

1       2      0       0       12.325
27033   1640   23517   17240   26872
87      21272  19958   22037   13386
21795   4840   27395   25726   19225
512000  1      278.08  278.08  278.08
30484   27772  27080   1038    28194
914     26259  31041   12751   17026
244     2      10.56   10.56   54.25
19301   28865  1212    15014   13332
13082   7324   30265   27130   18809
82      2      3.52    3.52    10
27930   19408  24736   25856   2013
31960   23376  30670   4205    29465
1       2      0       0       0
512000  1      278.08  278.08  278.18
13280   29320  5806    9668    4722
189     18824  23559   30526   23638
21618   22655  9397    2508    29365
16411   12682  29546   29613   20746
244     2      10.56   10.56   53.75
4780    5894   17484   11071   31197
3473    18722  7037    23313   30944
244     2      10.56   10.56   54
11163   24921  18840   14636   6122
6284    10256  24329   1531    23432
22177   7698   22399   3834    5480
406     2      17.6    17.6    6
16321   23440  32277   25179   2600
27494   15847  26311   26677   9994
22688   9494   31907   23668   18598
990     3657   12988   29304   26203
82      2      3.52    3.52    19.75
21727   12484  14384   8669    24409
26549   19437  13666   29183   8238
11780   11387  7677    8721    16645
21191   22072  9676    21098   25895
325     2      14.08   14.08   6
406     2      17.6    17.6    3.25
1       2      0       0       6.5
9856    18896  19692   27390   7405
325     2      14.08   14.08   8
18727   21900  30788   31734   10020
9588    11060  2774    10139   3059
23478   5869   16742   6354    3819
82      2      3.52    3.52    14
7250    27142  490     27628   29063
28262   16343  63      1615    27829
28110   9396   21775   2926    32665
167     3644   19128   10728   25901
16520   31089  15282   19995   975
163     2      7.04    7.04    0
406     2      17.6    17.6    7
163     2      7.04    7.04    0
1009    26446  1280    28820   24775
8836    26140  30106   30978   13388
13647   6100   31813   21440   13466
163     2      7.04    7.04    7.5
512000  1      278.08  278.08  278.06
22139   25430  21304   16133   5611
15273   29674  20969   30200   17961
11203   18118  14305   17467   8832
28129   3232   27111   27290   22391
325     2      14.08   14.08   8
19879   17899  32318   24778   9265
28468   31553  13558   17160   1075
27769   8905   23192   21010   27649

و نتیجه بعد از اعمال اسکریپت:

1       2      0       0       12.325
82      2      3.52    3.52    19.75
87      21272  19958   22037   13386
163     2      7.04    7.04    7.5
167     3644   19128   10728   25901
189     18824  23559   30526   23638
244     2      10.56   10.56   54.25
325     2      14.08   14.08   8
406     2      17.6    17.6    7
914     26259  31041   12751   17026
990     3657   12988   29304   26203
1009    26446  1280    28820   24775
3473    18722  7037    23313   30944
4780    5894   17484   11071   31197
6284    10256  24329   1531    23432
7250    27142  490     27628   29063
8836    26140  30106   30978   13388
9588    11060  2774    10139   3059
9856    18896  19692   27390   7405
11163   24921  18840   14636   6122
11203   18118  14305   17467   8832
11780   11387  7677    8721    16645
13082   7324   30265   27130   18809
13280   29320  5806    9668    4722
13647   6100   31813   21440   13466
15273   29674  20969   30200   17961
16321   23440  32277   25179   2600
16411   12682  29546   29613   20746
16520   31089  15282   19995   975
18727   21900  30788   31734   10020
19301   28865  1212    15014   13332
19879   17899  32318   24778   9265
21191   22072  9676    21098   25895
21618   22655  9397    2508    29365
21727   12484  14384   8669    24409
21795   4840   27395   25726   19225
22139   25430  21304   16133   5611
22177   7698   22399   3834    5480
22688   9494   31907   23668   18598
23478   5869   16742   6354    3819
26549   19437  13666   29183   8238
27033   1640   23517   17240   26872
27494   15847  26311   26677   9994
27769   8905   23192   21010   27649
27930   19408  24736   25856   2013
28110   9396   21775   2926    32665
28129   3232   27111   27290   22391
28262   16343  63      1615    27829
28468   31553  13558   17160   1075
30484   27772  27080   1038    28194
31960   23376  30670   4205    29465
512000  1      278.08  278.08  278.18

به نظر من که اصلا نیازی به پایتون هم نیست.

موفق باشید.
« آخرین ویرایش: 19 اسفند 1394، 02:02 ق‌ظ توسط احسان فعالپور »
عضو ارشد فدراسیون بیکاران ایران FBI

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #5 : 19 اسفند 1394، 06:20 ق‌ظ »
مچکرم اقا احسان . خدا روشکر ترتیب سطرها مهم نیست . بازم ممنون .

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #6 : 19 اسفند 1394، 06:51 ق‌ظ »
این پست با کمک دوستان یه گره کورو برای من باز کرد و خیلی بهم کمک کرد.این الگوریتم یه قسمت دیگه هم داره . نمیدونم ایا میشه این رو هم با همین دستور awk   انجام داد یا نه .
برای کل ردیف هایی که(بعد از حذف سطرهایی با ردیف های سوم و چهارم مشابه اما با ردیف پنجم کمتر)باقی موندن،میانگین ردیف پنجم رو محاسبه کنه و تک تک ردیف پنجم همه ی سطرها رو به صورت تک تک ازش کم کنه و به توان 2 برشونه و بعدش همه ی عدد های حاصل شده رو جمع کنه .که تو قسمت پایین این کارو نشون دادم .
1       2      0       0       12.325
82      2      3.52    3.52    19.75
87      21272  19958   22037   13386

میانگین ردیف پنجم: 4472.691666667
(12.235-4472.691666667)^2+(19.75-4472.691666667)^2+(13386-4472.691666667)^2 = ...


بازم ممنونم به خاطر وقتی که میذارید.
« آخرین ویرایش: 19 اسفند 1394، 06:54 ق‌ظ توسط oostaa »

آفلاین احسان فعالپور

  • Sr. Member
  • *
  • ارسال: 408
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #7 : 19 اسفند 1394، 11:01 ق‌ظ »
خب ظاهرا استفاده از awk برای شما خیلی کار راه اندازه، پیشنهاد میکنم روی یادگیریش وقت بذارید حتما.
اما در این مورد کافیه شما نتایج نهایی‌ای رو که از مرحله قبل بدست میارید بدید به دستور زیر تا میانگین رو حساب کنه:

ehsan@ehsan-SVF152190X:~/Desktop/scripting/tmp$ awk -MO '{sum+=$5};END{print sum/NR}' final
14655.5

و بعد برای قسمت بعدی هم از دستور زیر استفاده کنید:

ehsan@ehsan-SVF152190X:~/Desktop/scripting/tmp$ awk -MO -vCONST=14655.5 '{sum+=($5-CONST)^2};END{printf("%16.5f\n",sum)}' final
6058642531.83803
دقت کنید که این نتایج به ازای این دیتاهای خاصی که من به صورت رندوم تهیه کردم به دست اومده.
عضو ارشد فدراسیون بیکاران ایران FBI

آفلاین 藤沼

  • Sr. Member
  • *
  • ارسال: 414
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #8 : 19 اسفند 1394، 11:43 ق‌ظ »
« آخرین ویرایش: 19 اسفند 1394، 10:36 ب‌ظ توسط b|ackwolf »

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #9 : 19 اسفند 1394، 12:28 ب‌ظ »
از همه ی دوستان مچکرم . مخصوصا اقای فعالپور

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #10 : 20 اسفند 1394، 05:28 ب‌ظ »
نحوه ی اجرای این اسکریپتها،صرفا به صورت کپی اونها تو ترمیناله ؟ یا باید جور دیگه ای اجراشون کنم؟

آفلاین koosha

  • Hero Member
  • *
  • ارسال: 734
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #11 : 20 اسفند 1394، 06:07 ب‌ظ »
اگر منظورتون بش هست که میتونید اونها رو داخل فایلی با پسوند sh بریزید ، اول فایل بنویسید :  #!/bin/bash
و با این دستور بهش اجازه ی اجرا شدن بدید :  chmod +x file.shبعدش هم اجراش کنید .
GNU/Linux
Debian8
I3 WM

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #12 : 20 اسفند 1394، 07:40 ب‌ظ »
ممنونم کوشای عزیز. اما چطور باید فایل ورودی رو به این اسکریپت معرفی کنم ؟ من نه تو خود اسکریپت نه تو خود کد chmod جایی برای وارد کردن فایل ورودی ندیدم .
« آخرین ویرایش: 20 اسفند 1394، 10:36 ب‌ظ توسط oostaa »

آفلاین oostaa

  • Jr. Member
  • *
  • ارسال: 91
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #13 : 20 اسفند 1394، 10:52 ب‌ظ »
من برای اجرای کد :
#!/bin/bash

awk '
NF==5 && $3==$4 {
if ($3 in max5){
if ($5 > max5[$3]){
max5[$3]=$5
lineHolder[$3]=$0
}
}else{
max5[$3]=$5
lineHolder[$3]=$0
}
}
NF==5 && $3!=$4 {
print
}
END {
for (i in lineHolder){
print lineHolder[i]
}
delete max5
delete lineHolder
}
' "$1" | sort -n | column -t
از دستور
awk –f hazfmoshbeh.awk infile.txtاستفاده کردم . اما خطای زیر رو میده :
awk: hazfmoshbeh.awk:25: "$1" | sort -n | column -t
awk: hazfmoshbeh.awk:25:        ^ syntax error
awk: hazfmoshbeh.awk:25: "$1" | sort -n | column -t
awk: hazfmoshbeh.awk:25:                  ^ syntax error
فک میکنیپد مشکلش کجاست ؟

آفلاین احسان فعالپور

  • Sr. Member
  • *
  • ارسال: 408
  • جنسیت : پسر
پاسخ : مقایسه چند سطر به وسیله ی پایتون
« پاسخ #14 : 20 اسفند 1394، 11:48 ب‌ظ »
سلام.
این کارتون اشتباهه. زمانی مبتونی از یه همچین سینتکسی استفاده کنی که کل اون اسکریپت مربوط به awk باشه که توی اینجا sort و column جزو سینتکس awkنیستند.
شما کل اون اسکریپتی که نوشتم رو بریز توی یه فایل، بهش مجوز لازم رو بده، بعد صداش کن و فایل مورد نظر رو بهش پاس بده.
عضو ارشد فدراسیون بیکاران ایران FBI