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

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

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


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: مشکل با sort و join (حل شد)  (دفعات بازدید: 778 بار)

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

آفلاین eXtrem0us

  • Newbie
  • *
  • ارسال: 22
  • جنسیت : پسر
مشکل با sort و join (حل شد)
« : 20 اردیبهشت 1394، 03:46 ب‌ظ »
سلام
همونطور که اطلاع دارید، دستور join تو محیط shell، دو فایل متنی sort شده رو مثل جداول پایگاه داده‌ی رابطه‌ای به هم پیوند می‌زنه.
اما وقتی می‌خوام دو فایل رو که با دستور sort از قبل مرتبشون کردم رو با join پیوند بزنم، join پیغام خطا میده که دو فایلی که بهم دادی مرتب نیست. اشکال کار از اینجاست:
من یه همچین دستوری رو تو محیط bash اجرا کردم و نتیجه رو هم می‌بینید:
$ dpkg --get-selections exim*|sort
exim4-base install
exim4-config install
exim4-daemon-light install
exim4 install

همونطور که می‌بینید exim4 تو انتهای لیست اومده، در صورتی که باید اول میومد.
من سوئیچ‌های مختلف دستور sort رو هم امتحان کردم، اما هیچ کدوم موثر نبود.  :-?
سوال من این هستش که چطور میشه یک لیست رو درست sort کرد، به طوری که برای join قابل فهم باشه؟
« آخرین ویرایش: 20 اردیبهشت 1394، 06:49 ب‌ظ توسط eXtrem0us »

آفلاین Linja

  • Newbie
  • *
  • ارسال: 16
  • جنسیت : پسر
پاسخ : مشکل با sort و join
« پاسخ #1 : 20 اردیبهشت 1394، 06:17 ب‌ظ »
اون چیزی که داری سورت می‌کنی، توش اسپیس داره خصوصا آخر exim4 که تو خط آخر میفته. چون - قبل از کاراکتر اسپیس هست پس اینا میفتن اول، اون میره آخر.
حالا اگر میخوای اون ستون اول درست مرتب بشه باید اضافه‌ها رو با یه چیزی مثل cut یا awk بریزی دور  ;)

خروجی با cut:
:~# dpkg --get-selections exim* | cut -f1 |sort
exim4
exim4-base
exim4-config
exim4-daemon-light

خروجی با awk:
:~# dpkg --get-selections exim* | awk -F" " '{print $1}'|sort
exim4
exim4-base
exim4-config
exim4-daemon-light
« آخرین ویرایش: 20 اردیبهشت 1394، 06:23 ب‌ظ توسط Hunter »
Did my back hurt your knifٍ؟

آفلاین eXtrem0us

  • Newbie
  • *
  • ارسال: 22
  • جنسیت : پسر
پاسخ : مشکل با sort و join
« پاسخ #2 : 20 اردیبهشت 1394، 06:48 ب‌ظ »
ممنونم. با راهنمایی شما حل شد!  :D