انضمام (يونكس)

joinهو أمر في أنظمة يونكس والأنظمة الشبيهة بيونكس، يقوم بدمج أسطر ملفين نصيين مُرتبين بناءً على وجود حقل مشترك . وهو مشابه لعامل الربط المستخدم في قواعد البيانات العلائقية، ولكنه يعمل على الملفات النصية.

ملخص

يأخذ هذا joinالأمر ملفين نصيين كمدخلات، بالإضافة إلى عدة خيارات. إذا لم يتم تحديد أي وسيط في سطر الأوامر ، يبحث الأمر عن سطرين من الملفين يشتركان في نفس الحقل الأول (سلسلة من الأحرف تختلف عن المسافة)، ثم يُخرج سطرًا يتكون من الحقل الأول متبوعًا ببقية السطرين.

تحدد وسائط البرنامج الحرف الذي سيُستخدم بدلاً من المسافة لفصل حقول السطر، والحقل الذي سيُستخدم عند البحث عن أسطر متطابقة، وما إذا كان سيتم إخراج الأسطر غير المتطابقة. ويمكن تخزين المخرجات في ملف آخر بدلاً من طباعتها باستخدام إعادة التوجيه .

على سبيل المثال، يحتوي الملفان التاليان على قائمة بأسماء الآباء والأمهات المعروفين لبعض الأشخاص. وقد تم فرز كلا الملفين بناءً على حقل الربط - وهذا شرط أساسي للبرنامج.

جورج جيم كومار غوناواري
ألبرت مارثا جورج صوفي

سيؤدي دمج هذين الملفين (بدون وسيط) إلى إنتاج ما يلي:

جورج جيم صوفي

في الواقع، كلمة "جورج" هي الكلمة الوحيدة المشتركة كأول كلمة في كلا الملفين.

أمثلة

لإيجاد ثلاثيات فيثاغورس من الشكل (k, k+1, n) .

$ join < ( for i in { 1..9999 } ; do printf -- '%010d\t%s\t%s\t%s\n' " $ (( 2 * i *( i + 1 ) + 1 )) " " $i " " $(( i + 1 )) " ; done ) < ( for i in { 1..9999 } ; do printf -- '%010d\t%s\n' " $(( i ** 2 )) " " $i " ; done ) 0000000025 3 4 5 0000000841 20 21 29 0000028561 119 120 169 0000970225 696 697 985 0032959081 4059 4060 5741

تاريخ

joinيُقصد به أن يكون عامل تشغيل لقاعدة بيانات علائقية. وهو جزء من دليل قابلية النقل X/Open منذ الإصدار الثاني لعام 1987. وقد تم تضمينه في الإصدار الأول من POSIX.1 ومواصفات يونكس الموحدة . [ 1 ] [ 2 ]

قام مايك هارتل بكتابة النسخة joinالمدمجة في GNU coreutils . [ 3 ] يتوفر الأمر كحزمة منفصلة لنظام التشغيل مايكروسوفت ويندوز كجزء من مجموعة UnxUtils التي تضم منافذ Win32 أصلية لأدوات GNU Unix الشائعة. [ 4 ]

انظر أيضاً

مراجع

  1. مرجع الصدفة والأدوات المساعدة، مواصفات يونكس الموحدة ، الإصدار 5 من مجموعة Open Groupprintf  
  2. دليل الأوامر العامة لنظام FreeBSDprintf(1)  
  3. دليل أوامر لينكس العامة من ManKier.comjoin(1)  
  4. "منافذ Win32 أصلية لبعض أدوات GNU" . unxutils.sourceforge.net . مؤرشف من الأصل بتاريخ 9 فبراير 2006. تم الاطلاع عليه بتاريخ 3 فبراير 2026 .