سؤال
بياناتي كما / 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
لا تنتمي إلى StackOverflow