سؤال

لنفترض لدي قائمتين من الأرقام في ملفات F1، F2، كل رقم واحد في كل سطر. أريد أن أرى كم عدد الأرقام في القائمة الأولى ليست في بالعكس الثاني والعكس. حاليا أنا أستخدم البقرى -f F1 F2 -v ثم تكرار هذه باستخدام برنامج نصي قذيفة. هذا هو بطيء جدا (الوقت الدرجة الثانية يضر). هل هناك طريقة ألطف من القيام بذلك؟

هل كانت مفيدة؟

المحلول

وأنا أحب "بالاتصالات 'لهذا النوع من الشيء. (تحتاج الملفات المراد فرزها.)

$ cat f1
1
2
3
$ cat f2
1
4
5
$ comm f1 f2
        1
2
3
    4
    5
$ comm -12 f1 f2
1
$ comm -23 f1 f2
2
3
$ comm -13 f1 f2
4
5
$ 

نصائح أخرى

وتعذر عليك فقط وضع كل رقم في سطر واحد ثم diff (1) منهم؟ قد تحتاج إلى فرز القوائم من قبل، على الرغم من أن لللعمل بشكل صحيح.

في حالة خاصة حيث <م> ملف واحد هو مجموعة فرعية من جهة أخرى ، ما يلي:

cat f1 f2 | sort | uniq -u

وأن قائمة الخطوط <م> فقط في الملف أكبر. وبالطبع الأنابيب إلى wc -l سوف تظهر العد.

ولكن، ليس هذا هو بالضبط ما وصفته أنت.

وهذا أونيلينير يخدم احتياجاتي خاصة في كثير من الأحيان، ولكن أحب أن يرى حلا أكثر عمومية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top