سؤال

بياناتي كما / TMP / 1

9367543
9105616
9108177
8948074
8860323
9170406
9105616

أركض وأنا لا أحصل على شيء

cat /tmp/1 | uniq -d

هذا غريب، منذ uniq -d ينبغي

-d      Only output lines that are repeated in the input.

كيف يمكنك استخدام uniq -d?

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

المحلول

يجب عليك فرز بياناتك قبل استخدام UNIQ. يزيل / يكشف فقط التكرارات على الخطوط المجاورة.

نصائح أخرى

جرب هذا للتحقق المزدوج، وسوف يخرج أي خطوط مكررة:

  cat /tmp/1 |  awk 'seen[$0]++ == 1'

أوه، هذه هي مشكلتك:

 cat /tmp/1 | sort | uniq -d

فرزه قبل تشغيل UNIQ!

awk '{_[$0]++}END{for(i in _)if(_[i]>1) print i}' /tmp/1

أو فقط

awk '_[$0]++ == 1' file
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top