শেষ কলাম অনুসারে কীভাবে সংখ্যার সাজান?


23

আমার এই ইনপুটটি রয়েছে:

sdkxyosl 1
safkls 2
asdf--asdfasxy_asd 5
dkd8k  jasd 29
sdi44sw 43
asasd afsdfs 10
rklyasd 4

আমার এই আউটপুটটি দরকার:

sdi44sw 43
dkd8k  jasd 29
asasd afsdfs 10
asdf--asdfasxy_asd 5
rklyasd 4
safkls 2
sdkxyosl 1

সুতরাং আমি শেষ কলাম দ্বারা লাইনগুলি সাজানোর প্রয়োজন।

আমি জানি না এক লাইনে কয়টি কলাম রয়েছে।

আমি ঠিক বুঝতে পারি না, কীভাবে এটি করা যায়। আমার কাছে "পার্ল শক্তি" নেই। আমার কাছে এখনকার গড় স্ক্রিপ্টিং শক্তিগুলি সেড, অ্যাজক, কাট, ইত্যাদি দিয়ে with

কেউ কীভাবে এটি করতে জানেন?

উত্তর:


34

নিম্নলিখিত কমান্ড লাইনটি awkfile.txt এর প্রতিটি লাইনের শেষ ক্ষেত্রটি পুনরায় সংশোধন করতে ব্যবহার cutকরে , বিপরীতমুখী সারণি করে, তার পরে যুক্ত ক্ষেত্রটি সরানোর জন্য ব্যবহার করে:

awk '{print $NF,$0}' file.txt | sort -nr | cut -f2- -d' '

ওএমজি ... আমি আরএসএস সম্পর্কে জানতাম না !! আপনাকে অনেক ধন্যবাদ!!!!!
ল্যান্সবায়নেস

@forcefsck: আমি এটি শুধুমাত্র সঙ্গে সম্ভব মনে করি না sort -kbegfieldজিএনইউ সাজানোর ফাংশনটি কেবল শূন্যকে গণনা করে। আপনার সাজসজ্জা-সাজানোর-আনকোর্ট (ডিএসইউ) পদ্ধতির বিষয়টি আমার মনে হয় সবচেয়ে ভাল way
মাইকেল

আগ্রহের বাইরে, কেন $NF,$RSএবং না $NF,$0? আমি এটা জানি $RSনা। (আমি অনুমান করি এটি সমান $NF,$"\n", যা একই কাজ করে তবে এটি আমার কাছে অবাক করাও মনে হয়))
মাইকেল

2
@ johnny8888, @forfsck: অবজেক্টে, $কোনও অভিব্যক্তি অনুসরণ করা যেতে পারে। " অ-নেতিবাচক পূর্ণসংখ্যার ব্যতীত অন্য যে কোনও কিছুর জন্য মূল্যায়ন করা ক্ষেত্রের সংখ্যা প্রকাশের প্রভাব অনির্দিষ্ট । GNU awk (আমার সিস্টেমে) একটি স্ট্রিংকে "\n"শূন্যের মতো আচরণ করে । অন্যরা (যেমন এ, ডাব্লু এবং কে দ্বারা মূল প্রয়োগ) ত্রুটি বার্তার সাথে বাতিল হয়ে যায়। যদি RSকোনও অঙ্ক হয়ে থাকে, আপনি কোনও প্রয়োগের ক্ষেত্রে সংশ্লিষ্ট ক্ষেত্রটি পাবেন। সুতরাং এটি করবেন না, ব্যবহার করুন $0
গিলস

1
সত্যিই ঝরঝরে! সুতরাং যা চলছে তার দীর্ঘ ব্যাখ্যা: জোর দিয়ে, প্রথমে শেষ ক্ষেত্রটি মুদ্রণ করুন তারপরে সম্পূর্ণ রেকর্ড করুন, সংখ্যায় উল্টোভাবে সাজান, তারপরে কাটা ব্যবহার করে প্রথম কলামটি ছাঁটাই করুন।
ফায়াত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.