একটি পাঠ্য ফাইল থেকে কেবল সদৃশ মানগুলি কীভাবে প্রিন্ট করা যায়?


68

মনে করুন নীচের মতো সংখ্যাসূচক মানের একটি কলাম রয়েছে:

file1:

1 
2
3
3
3
4
4
4
5
6

আমি আউটপুট চাই:

3  
4

যে, শুধুমাত্র পুনরাবৃত্তি লাইন। লিনাক্সে এটি সন্ধানের জন্য কি কোনও কমান্ড লাইন সরঞ্জাম রয়েছে? (এনবি: মানগুলি সংখ্যা অনুসারে বাছাই করা হয়)।


3
দেখুন man uniq
জেসনওয়ারিয়ান

উত্তর:


118

আপনি এটির uniq(1)জন্য ব্যবহার করতে পারেন :

uniq -d file.txt

এটি কেবল সদৃশগুলি মুদ্রণ করবে। ইনপুট ফাইলটি এমনভাবে বাছাই করা দরকার যে সমস্ত ডুপ্লিকেট ক্রমাগত হয় (যা তারা প্রদর্শিত হয়), তাই প্রথমে এটি সাজানোর মাধ্যমে চালনা করুন যদি তা না হয়।


1
আমি যদি চাই যে ট্রিপলিকেটগুলি কেবল মুদ্রিত হয়?
MiNdFrEaK

8
@ এমআইএনডিএফআরইএইকে ত্রিপিলেকেটের sort | uniq -c | grep '^\s*3\s' | sed 's/^\s*[0-9]*\s*//'জন্য; এন-প্লাইকেটগুলির জন্য যেকোন এন এর সাথে "3" প্রতিস্থাপন করুন
full.stack.ex

@MiNdFrEaK sort | uniq -c | sed -n 's/^[[:blank:]]*3[[:blank:]]\{1,\}//p'triplicates জন্য

@ ক্যাম আপনি কি সিএসভি ফাইলগুলিতেও এটি করতে পারেন? শুধুমাত্র একটি নির্দিষ্ট কলামের মান?
নিউম্যানরফরাইফ

1
বাছাই file.txt | uniq -d
ron

1

ব্যবহার uniqএবং awk:

cat File1  | uniq -c | awk '$1 > 1 { print $2 }'

6
এই কাজ, কিন্তু আপনি কেন আউটপুট পাইপ আমি দেখতে পাচ্ছি না cat?
বার্নহার্ড

1
সকলেই জানেন না আপনি uniq -c File1এবং অন্যান্য সরঞ্জামের সাথে একইভাবে করতে পারেন । এখানে সম্ভবত এটিই চলছে।
ম্যাথিয়াস

1

এটি কার্যকর করুন: perl -ne 'print if $a{$_}++' filename.txt


এটি 3\n3\n4\n\4nইনপুট ফাইল 1 দেয় যা স্পষ্টতই ভুল।
ইয়েগশি

পার্ল স্নিপ আমি দেখতে পাচ্ছি যে নিজেকে পুনর্বিবেচনা করা হচ্ছে প্রতিটি লাইনের সংখ্যার সংখ্যা সরবরাহ করে যাতে এটি পাইপ করা, বাছাই করা এবং প্রয়োজনীয় হিসাবে ফিল্টার করা যায়: পার্ল -নে ​​'$ a {$ _} ++; সমাপ্ত {থাকা অবস্থায় (($ কে, $ v) = প্রতিটি% ক) {প্রিন্টফ "% d \ t% s", $ v, $ কে}} 'ফাইলের নাম
থিওফ্রাস্টাস

প্রদত্ত ক্ষেত্র বিভাজক দ্বারা আলাদা কোনও নির্দিষ্ট কলামে এটি করার কোনও উপায় আছে কি?
জেরেমিয়া

ইয়াগ্যাসি দ্বারা নির্দেশিত হিসাবে, প্রয়োজনীয়তাগুলি পূরণ করার জন্য একটি ছোট ফিক্স প্রয়োজন: পার্ল-এন 'মুদ্রণ যদি 1 == $ a {$ _} ++' filename.txt সমস্ত উত্তরগুলির মধ্যে এটি আমার প্রিয়, কারণ অন্য উত্তরগুলি একটি সম্পূর্ণ বাছাইয়ের সাথে সমস্ত ডেটা প্রিপ্রোসেস করা প্রয়োজন। এই উত্তর আরও দ্রুত এবং দক্ষতার সাথে আউটপুট ফলাফল শুরু করে।
বিওসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.