আমি একাধিক কলাম সহ কমা বিস্মৃত ফাইল বাছাই করতে ইউনিক্স বাছাই ব্যবহার করছি। এখনও অবধি, এটি সংখ্যা বা বর্ণমালা অনুসারে তথ্য বাছাইয়ের জন্য নিখুঁতভাবে কাজ করেছে:
যেকোন ধরণের বাছাইয়ের আগে ফাইলের উদাহরণ:
C,United States,WA,Tacoma,f,1
A,United States,MA,Boston,f,0
B,United States,NY,New York,f,5
A,Canada,QC,Montreal,f,2
A,Bahamas,Bahamas,Nassau,f,2
A,United States,NY,New York,f,1
ফাইলটি বাছাই করুন: $ sort -t ',' -k 2,2 -k 3,3 -k 4,4 -k 5,5r -k 6,6nr tmp.csv
সাজানো ফলাফল:
A,Bahamas,Bahamas,Nassau,f,2
A,Canada,QC,Montreal,f,2
A,United States,MA,Boston,f,0
B,United States,NY,New York,f,5
A,United States,NY,New York,f,1
C,United States,WA,Tacoma,f,1
এখানে সমস্যাটি রয়েছে: আমি কাস্টম বাছুর উপর ভিত্তি করে কলাম 2 বাছাই করতে চাই, যার অর্থ আমি প্রথমে মার্কিন যুক্তরাষ্ট্র, তারপরে কানাডা এবং তার পরে বাহামাস চাই:
পছন্দসই বাছাই:
A,United States,MA,Boston,f,0
B,United States,NY,New York,f,5
A,United States,NY,New York,f,1
C,United States,WA,Tacoma,f,1
A,Canada,QC,Montreal,f,2
A,Bahamas,Bahamas,Nassau,f,2
ইউনিক্স বাছাই করার কোনও উপায় কি কোনও কাস্টম সাজানোর অর্ডারের পরে প্রয়োগ করা যেতে পারে? কিছুটা এইরকম:
$ sort -t ',' -k 2,2:'United States, Canada, Bahamas' -k 3,3 -k 4,4 -k 5,5r -k 6,6nr tmp.csv
ধন্যবাদ!
t
পরিবর্তে থাকা উচিত নয় f
?
join
আদেশ, তবে আপনি অনেকগুলি বাছাই করে শেষ করতে পারেন - এর জন্য ইনপুট ফাইলগুলিjoin
অবশ্যই এক ক্রম অনুসারে বাছাই করা উচিত এবং তারপরে আপনিsort
আবার ডেটা put োকাতে চাইছেন একটি আলাদা অর্ডার (এবং পোস্ট-বাছাই পদক্ষেপ হিসাবে ক্রম ক্রম কলামটি হারাতে)