গ্রেপ ব্যবহার করে একটি লাইনে শেষ আইটেম সন্ধান করা


13

আমি একটি নির্দিষ্ট প্যাটার্নের জন্য গ্রেপ ব্যবহার করে শেষ শব্দ বা বাক্যাংশটি নেওয়ার চেষ্টা করছি। এই উদাহরণে এটি সর্বশেষ কমা থেকে রেখার শেষ পর্যন্ত হবে:

Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value

এবং সুতরাং যে লাইনের জন্য চেয়েছিলেন আউটপুট "গ্রেট মান" হবে। সমস্ত লাইন পৃথক দৈর্ঘ্যের হয় তবে সর্বদা শেষ শব্দের আগে একক কমা থাকে।

মূলত, আমি কেবল শেষ কমা থেকে লাইনের শেষ পর্যন্ত আউটপুট দিতে চাই। ধন্যবাদ!


9
আপনি ব্যবহার বিবেচনা করেছেন awk -F, '{print $NF}'?
স্টিল্ড্রাইভার

লাইনে শেষ আইটেম পাওয়া সহজ কাজ, তবে কীভাবে সেই লাইনটি চিহ্নিত করা উচিত? মানে, কোনও কমান্ড বা স্ক্রিপ্ট কীভাবে লাইনের দিকে নজর দিতে পারে এবং "হ্যাঁ, এটিই"? সেই রেখাটিটি কী চিহ্নিত করে?
সের্গেই কোলোডিয়াজনি

5
grepএই কাজের জন্য সরঞ্জাম নয়।
কুসালানন্দ

উত্তর:


27

এখানে:

grep -o '[^,]\+$'
  • [^,]\+এক বা একাধিক অক্ষরের সাথে মেলে ,যা লাইনের শেষে নয় ( $)

  • -o শুধুমাত্র মিলে যাওয়া অংশটি মুদ্রণ করে

উদাহরণ:

% grep -o '[^,]\+$' <<<'Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value'
Great Value

মোহন মত কাজ! আমি "এর সংমিশ্রণটি ব্যবহার করার চেষ্টা করছিলাম।" এবং অন্যান্য এক্সপ্রেশন আগে কিন্তু এটি অনেক ভাল কাজ করে, অনেক প্রশংসিত।
রিভার্সবোটাল

হুম, আমি ব্যবহার করতাম -Eoএবং তারপরে পালানোর দরকার +
পড়ত

@ বালড্রিক ক্রমে আগে -Eসক্ষম করে তোলে , এজন্যই।
হিমাইল

@ হিমাইল হ্যাঁ, আমি জানি কেন। আমি এটি ব্যবহার করার ঝোঁক হিসাবে এটি একটি আরও সাধারণ রেজেক্স সিনট্যাক্স
বাল্ড্রিক

15

সর্বদা একটি awkসমাধান দেখতে পছন্দ করুন সুতরাং এটি এখানে (যথাযথ সমাধানটিকে উন্নত করা হয়েছে!):

% awk -F, '{print $NF}'  <<<'Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value'
Great Value

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