انجمنهای فارسی اوبونتو
		کمک و پشتیبانی => نرمافزارهای فنی-مهندسی => نویسنده: oostaa در 18 اسفند 1394، 11:47 بظ
		
			
			- 
				سلام دوستان عزیز.
 من یه فایل تکست دارم که 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
- 
				خودت تا کجاش رفتی؟ بگو مشکلت کجاست.
			
- 
				سلام.
 یه خورده ابهام در مورد سوالتون برام بوجود اومده، اگه رفعش کنید شاید بتونم کمکتون کنم.
 طبق این نتایج:
 
 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
 
از بین این دیتاهایی که گذاشتید من تمام سطرهای پنج ستونهای که ستون سوم و چهارمش با هم برابر هستند رو چاپ کردم.
 منتها ابهام اینجاست که از هیچ کدوم از این طرها شما دو تا ندارید که بخواید طبق مقدار ستون پنجم انتخابشون کنید.
- 
				کاملا حرف شما درسته . این قسمتی از جواب برنامه ی خودم بود که متاسفانه توشون ستون سوم و چهارم تکرار نشدن، اما من میخوام از بین اون ستون هایی که ردیف سوم و چهارمشون برابرن،فقط اون سطری باقی بمونه که ردیف پنجمش بزرگتر از همه س . ایا این برنامه این کارو میکنه ؟
 
- 
				کاملا حرف شما درسته . این قسمتی از جواب برنامه ی خودم بود که متاسفانه توشون ستون سوم و چهارم تکرار نشدن، اما من میخوام از بین اون ستون هایی که ردیف سوم و چهارمشون برابرن،فقط اون سطری باقی بمونه که ردیف پنجمش بزرگتر از همه س . ایا این برنامه این کارو میکنه ؟
 
 
 واللا در حال حاضر الگوریتمی که بتونه خیلی بهینه این کار رو براتون انجام بده به ذهنم نمیرسه(لااقل با پایتون)، باید روش فکر کنم. ولی این اسکریپت 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
 به نظر من که اصلا نیازی به پایتون هم نیست.
 
 موفق باشید.
- 
				مچکرم اقا احسان . خدا روشکر ترتیب سطرها مهم نیست . بازم ممنون . 
			
- 
				این پست با کمک دوستان یه گره کورو برای من باز کرد و خیلی بهم کمک کرد.این الگوریتم یه قسمت دیگه هم داره . نمیدونم ایا میشه این رو هم با همین دستور 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 = ...
 
 
 بازم ممنونم به خاطر وقتی که میذارید.
- 
				خب ظاهرا استفاده از 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
دقت کنید که این نتایج به ازای این دیتاهای خاصی که من به صورت رندوم تهیه کردم به دست اومده.
- 
				http://pizza.sandia.gov/doc/dump.html
 http://lammps.sandia.gov/doc/Section_python.html
 http://pandas.pydata.org
 
 همیشه ماهیت داده و منشاء اون رو بنویسید.
- 
				از همه ی دوستان مچکرم . مخصوصا اقای فعالپور
			
- 
				نحوه ی اجرای این اسکریپتها،صرفا به صورت کپی اونها تو ترمیناله ؟ یا باید جور دیگه ای اجراشون کنم؟
			
- 
				اگر منظورتون بش هست که میتونید اونها رو داخل فایلی با پسوند sh بریزید ، اول فایل بنویسید :  #!/bin/bash
 و با این دستور بهش اجازه ی اجرا شدن بدید :chmod +x file.shبعدش هم اجراش کنید .
- 
				ممنونم کوشای عزیز. اما چطور باید فایل ورودی رو به این اسکریپت معرفی کنم ؟ من نه تو خود اسکریپت نه تو خود کد chmod جایی برای وارد کردن فایل ورودی ندیدم . 
			
- 
				من برای اجرای کد :
 #!/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
 
فک میکنیپد مشکلش کجاست ؟
 
- 
				سلام.
 این کارتون اشتباهه. زمانی مبتونی از یه همچین سینتکسی استفاده کنی که کل اون اسکریپت مربوط به awk باشه که توی اینجا sort و column جزو سینتکس awkنیستند.
 شما کل اون اسکریپتی که نوشتم رو بریز توی یه فایل، بهش مجوز لازم رو بده، بعد صداش کن و فایل مورد نظر رو بهش پاس بده.
- 
				من که تو لینوکس صفرم . میشه راهنماییم کنید که دقیقا باید چیکار کنم ؟ کدهایی که باید استفاده کنم ... 
 دو سه روزه که دارم سرچ میزنم اما هنوز هیچی دستگیرم نشده . نمیدونم باید چیکار کنم این کدها رو  و چطور استفاده کنم ازشون .
- 
				وقتی کد  ehsan@ehsan-SVF152190X:~/Desktop/scripting/tmp$ awk -MO '{sum+=$5};END{print sum/NR}' final رو وارد میکنم این جوابو  میده :
 Usage: awk [POSIX or GNU style options] -f progfile [--] file ...
 Usage: awk [POSIX or GNU style options] [--] 'program' file ...
 POSIX options:		GNU long options: (standard)
 -f progfile		--file=progfile
 -F fs			--field-separator=fs
 -v var=val		--assign=var=val
 Short options:		GNU long options: (extensions)
 -b			--characters-as-bytes
 -c			--traditional
 -C			--copyright
 -d[file]		--dump-variables[=file]
 -e 'program-text'	--source='program-text'
 -E file			--exec=file
 -g			--gen-pot
 -h			--help
 -L [fatal]		--lint[=fatal]
 -n			--non-decimal-data
 -N			--use-lc-numeric
 -O			--optimize
 -p[file]		--profile[=file]
 -P			--posix
 -r			--re-interval
 -S			--sandbox
 -t			--lint-old
 -V			--version
 
 To report bugs, see node `Bugs' in `gawk.info', which is
 section `Reporting Problems and Bugs' in the printed version.
 
 gawk is a pattern scanning and processing language.
 By default it reads standard input and writes standard output.
 
 Examples:
 gawk '{ sum += $1 }; END { print sum }' file
 gawk -F: '{ print $1 }' /etc/passwd
فک میکنید مشکلش چیه ؟
- 
				سوئیچ M- برای محاسبات با اعداد بزرگ بود که ظاهرا ورژن awk شما ازش پشتیبانی نمیکنه.
 بیخیالش بشید و حذفش کنید اون سوئیچ رو.
 خروجیه این دستور رو بدید لطفا:
 
 ehsan@ehsan-SVF152190X:~$ awk --version
 GNU Awk 4.1.1, API: 1.1 (GNU MPFR 3.1.3, GNU MP 6.0.0)
 Copyright (C) 1989, 1991-2014 Free Software Foundation.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program. If not, see http://www.gnu.org/licenses/.
 اگه  GNU MPFR و GNU MP توی دو خط اول دیده نمیشن پیشنهاد میکنم از awkبه جای gawk استفاده کنید.
- 
				دمتون گرم . مشکل حل شد اساسی. امیدوارم بتونم جبران کنم . 
			
- 
				عنوان مطلب رو از پایتون به «چطور چندین سطر یا ستون رو باهم مقایسه کنم؟» تغییر بده (: