দ্বিতীয় কলাম অনুসারে লিনাক্স শেল ফাইল ফাইল?


89

আমার কাছে এই জাতীয় একটি ফাইল রয়েছে:

FirstName, FamilyName, Address, PhoneNumber

আমি কীভাবে এটি পারিবারিক নাম অনুসারে বাছাই করতে পারি?


কোন ওএস এবং কমান্ড প্রসেসর?
প্রীত সংঘ

উত্তর:


157

এটি যদি ইউনিক্স হয়:

sort -k 2 file.txt

একাধিক -kকলামে বাছাই করতে আপনি একাধিক পতাকা ব্যবহার করতে পারেন । উদাহরণস্বরূপ, পরিবারের নাম অনুসারে বাছাই করতে টাই টাই ব্রেকার হিসাবে প্রথম নাম:

sort -k 2,2 -k 1,1 file.txt

"ম্যান সাজান" থেকে প্রাসঙ্গিক বিকল্পগুলি:

-কি, --কি = পস 1 [, পস 2]

পস 1 এ একটি কী শুরু করুন, এটি পস 2 এ শেষ করুন (উত্স 1)

পস হ'ল এফ [.সি] [ওপিটিএস], যেখানে এফ ক্ষেত্রের নম্বর এবং সি ক্ষেত্রের অক্ষরের অবস্থান। ওপিটিএস হ'ল এক বা একাধিক একক-অক্ষরের ক্রম বিকল্প, যা সেই কীটির জন্য বিশ্বব্যাপী ক্রম বিকল্পকে ওভাররাইড করে। যদি কোনও কী দেওয়া না হয় তবে পুরো লাইনটি কী হিসাবে ব্যবহার করুন।

-t, - ফিল্ড-বিভাজক = এসইপি

ফাঁকা স্থানান্তর থেকে অ-ফাঁকা পরিবর্তে এসইপি ব্যবহার করুন


4
--field-separator=','আপনার যদি "বিলি বব" এর মতো "প্রথম নাম" এর মতো মানগুলিতে ডেটা এন্ট্রি অপারেটর টাইপ করতে পারে বা ব্যবহার করতে পারেন তবে কিছুটা সতর্কতা অবলম্বন করুন ... আপনি যদি এটিকে রক্ষা না করেন তবে স্পেসগুলি আপনার ডেটাতে সহজেই প্রবেশ করতে পারে তবে কমা তুলনামূলকভাবে অসম্ভব।
টনি ডেলরয়

4
"স্মিথ, জুনিয়র" এর মতো সেই ক্ষেত্রগুলিতে কমাগুলির খুব সম্ভবত মামলা রয়েছে বা "ম্যাকডোয়েল, সিনিয়র" বা "ডাঃ জন" বা "নিউইয়র্ক, এনওয়াই"
jbnunn

4
মনে রাখবেন যে কলামগুলি দৃশ্যতভাবে প্রান্তিকভাবে স্থাপন করা হয়েছে, অর্থাত প্রতিটি ক্ষেত্রের মধ্যে স্থির সংখ্যা অবিচ্ছিন্ন থাকে, আপনাকে অবশ্যই -bবিকল্পটি ব্যবহার করতে হবে । এর কারণ sortএটি বিবেচনা করা হচ্ছে যে সাজানোর স্ট্রিংটি কমাটির পরে ঠিক কমাতে শুরু হয় এবং কলামের প্রথম অক্ষর থেকে নয়। এছাড়াও, আপনার লোকালটির LC_ALL=Cকারণে কোনও পার্শ্ব প্রতিক্রিয়া এড়াতে আপনার কমান্ডটি প্রিফিক্স করতে হতে পারে, যা সাধারণ এএসসিআইআই ফাইলের ক্ষেত্রেও ঘটতে পারে।
ক্যালানডো

@ ক্যালান্ডোয়া অংশটি ধন্যবাদ -b( --ignore-leading-blanks) এর জন্য। কিছুটা স্পষ্ট করার জন্য: প্রথম echo -e 'aa<SPACE>a\na<SPACE><SPACE>b' | sort -k2দেয় a<SPACE><SPACE>b(দ্বিতীয় কলামটি প্রথমটির পরে শুরু হয় non-blank to blank transition, এবং <SPACE><SPACE>bএর আগে রয়েছে <SPACE>a) তবে -bএটি aa<SPACE>aপ্রত্যাশার সাথে দেয় ( aআগে ছিল b)।
কিরিল বুলিগিন

7

কেবলমাত্র দ্বিতীয় ক্ষেত্র অনুসারে বাছাই করতে (এইভাবে যেখানে দ্বিতীয় ক্ষেত্রগুলি মেলে, ম্যাচের সাথে সেই রেখাগুলি অন্য ক্ষেত্রগুলিতে বাছাই না করে সেগুলি মূল ক্রমে থাকে):

sort -k 2,2 -s orig_file > sorted_file

3

এফডাব্লুআইডাব্লু, কোন প্রসেসটি সর্বাধিক গুণমানের মেমরি ব্যবহার করছে তা দেখানোর জন্য এখানে একটি সাজানোর পদ্ধতি।

memstat | sort -k 1 -t':' -g -r | less

বাছাই বিকল্পগুলি প্রথম কলামে সেট করা হয়, এটি ব্যবহার করে: কলাম বিভাজক হিসাবে, সাংখ্যিক বাছাই এবং বিপরীতে সাজান।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.