আমি কীভাবে অনন্য লাইনগুলি খুঁজে পেতে পারি এবং একটি ফাইল থেকে সমস্ত নকল মুছে ফেলতে পারি? আমার ইনপুট ফাইলটি
1
1
2
3
5
5
7
7
আমি ফলাফলটি চাই:
2
3
sort file | uniq
কাজ করবে না। সমস্ত মান 1 বার প্রদর্শিত হবে
আমি কীভাবে অনন্য লাইনগুলি খুঁজে পেতে পারি এবং একটি ফাইল থেকে সমস্ত নকল মুছে ফেলতে পারি? আমার ইনপুট ফাইলটি
1
1
2
3
5
5
7
7
আমি ফলাফলটি চাই:
2
3
sort file | uniq
কাজ করবে না। সমস্ত মান 1 বার প্রদর্শিত হবে
sort file | uniq
1 বার সমস্ত মান দেখায় কারণ এটি তাত্ক্ষণিকভাবে প্রথম বারের মতো লাইনটি মুদ্রণ করে এবং পরবর্তী এনকাউন্টারগুলির জন্য, এটি কেবল তাদের এড়িয়ে যায়।
উত্তর:
uniq
আপনার প্রয়োজনীয় বিকল্প রয়েছে:
-u, --unique
only print unique lines
$ cat file.txt
1
1
2
3
5
5
7
7
$ uniq -u file.txt
2
3
নিম্নলিখিত হিসাবে ব্যবহার করুন:
sort < filea | uniq > fileb
uniq -u filea > fileb
sort<filea.txt | uniq>fileb.txt
। হতে পারে আপনি এক্সটেনশানগুলি রেখে গেছেন। আমি একটি ম্যাক ওএস এক্স ব্যবহার করছি। আপনাকে filea.txt
অন্য কোনও ব্যক্তির কাছ থেকে যেতে হবেfileb.txt
sort
এবং পাইপিংয়ের বিন্দুটি কী হবে uniq
যখন আপনি কেবল sort -u file -o file
যা করতে পারছেন তা হুবহু মানগুলি মুছে ফেলছে অর্থাত্ আপনার ওপিতে fileb
রয়েছে 1,2,3,5,7
অনন্য লাইনগুলি যা কেবল ফাইল এক্সটেনশনের 2,3
দ্বারা অর্জন করা যায় uniq -u file
তা চায় না এটির সাথে আপনার উত্তরটি ভুল।
এছাড়া আপনি অনন্য মান "ফাইল" -এ ব্যবহার করে মুদ্রণ করতে পারে cat
কমান্ড বংশীধ্বনিতুল্য দ্বারা sort
এবংuniq
cat file | sort | uniq -u
ইউনিক-ইউ কাজ করে না বলে আমাকে পাগল করে চলেছে।
সুতরাং এর পরিবর্তে, যদি আপনার অজগর থাকে (বেশিরভাগ লিনাক্সের ডিস্ট্রোস এবং সার্ভারগুলি ইতিমধ্যে রয়েছে):
#Python
#Assuming file has data on different lines
#Otherwise fix split() accordingly.
uniqueData = []
fileData = open('notUnique.txt').read().split('\n')
for i in fileData:
if i.strip()!='':
uniqueData.append(i)
print uniqueData
###Another option (less keystrokes):
set(open('notUnique.txt').read().split('\n'))
জাস্ট এফআইআই, ইউনিক ম্যান পৃষ্ঠা থেকে:
"দ্রষ্টব্য: 'ইউনিীক' পুনরাবৃত্ত রেখাগুলি যদি সংলগ্ন না হয় তবে সনাক্ত করে না You
এর সাথে অনুরোধ করার জন্য সঠিক উপায়গুলির মধ্যে একটি: # সাজানো ননউইনিক.টিএসটিএস্ট | ইউনিক
$ cat x
3
1
2
2
2
3
1
3
$ uniq x
3
1
2
3
1
3
$ uniq -u x
3
1
3
1
3
$ sort x | uniq
1
2
3
uniq -u < file
কাজ করবে
uniq
যদি আপনার ফাইলটি / সাজানো যায় তবে জরিমানা করা উচিত, যদি আপনি কোনও কারণে ফাইলটি বাছাই করতে না পারেন তবে আপনি ব্যবহার করতে পারেন awk
:
awk '{a[$0]++}END{for(i in a)if(a[i]<2)print i}'
sort -d "file name" | uniq -u
এটি আমার জন্য একই রকমের জন্য কাজ করেছিল। ব্যবস্থা না থাকলে এটি ব্যবহার করুন। এটি সাজানো থাকলে আপনি বাছাই করতে পারেন
আমি এটি সহজ খুঁজে।
sort -u input_filename > output_filename
-u
অনন্য জন্য দাঁড়িয়েছে।
এটিই আমি প্রথম চেষ্টা করেছিলাম
skilla:~# uniq -u all.sorted
76679787
76679787
76794979
76794979
76869286
76869286
......
একটি বিড়াল করার পরে all.sort
skilla:~# cat -e all.sorted
$
76679787$
76679787 $
76701427$
76701427$
76794979$
76794979 $
76869286$
76869286 $
প্রতি দ্বিতীয় লাইনে একটি পিছনের স্থান রয়েছে :( সমস্ত পেছনের জায়গাগুলি মুছে ফেলার পরে এটি কাজ করেছিল!
ধন্যবাদ
sort file | uniq -u
আপনার জন্য কনসোল আউটপুট হবে।