কলাম অনুসারে আউটপুট সাজান


13

আমি এই আদেশটি নিতে চাই find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done( এখান থেকে )। যার মূলত আউটপুট থাকে

./kennel:       11062
./shadow:       15449
./ccc:  9765
./journeyo:     14200
./norths:       10710

এবং এটি বৃহত্তম থেকে সংখ্যার অনুসারে বাছাই করুন। তবে আমি কীভাবে করব তা নিশ্চিত নই sort, বা যা কিছু আলাদা কলামে কাজ করে।

উত্তর:


27

মাধ্যমে লাইন পাইপ sort -n -r -k2। বৃহত্তম থেকে ক্ষুদ্রতম পর্যন্ত বাছাই করতে সম্পাদিত।


এটি চেষ্টা করে এবং নির্বিঘ্নে কাজ করে
গার্ট

3

একটি বিকল্প হ'ল কলামগুলি ফ্লিপ করা:

$ find -maxdepth 1 -type d | while read -r dir; do printf "%d\t%s\n" "`find "$dir" | wc -l`" "$dir"; done

তারপরে আপনি এইভাবে আউটপুট পাবেন:

17  .
1   ./acroread_1000_1002
1   ./.ICE-unix
2   ./.X11-unix
1   ./orbit-mrozekma
2   ./ns.mrozekma.:0

আপনি sort -nrযেভাবে চান সেটিকে সাজানোর জন্য আপনি এটিটি পাইপ করতে পারেন। এমনকি awk -F'\t' '{print $2 "\t" $1}'যদি আপনার সেই ক্রমের প্রয়োজন হয় তবে কলামগুলি ফ্লিপ করার মতো কিছু মাধ্যমে আপনি বাছাই করা ফলাফলটি পাইপ করতে পারেন

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