গ্লোব ক্রম পরিবর্তন করা সম্ভব?


12

সিসলোগ থেকে নির্দিষ্ট বার্তার সমস্ত দৃষ্টান্ত নিচের মতো কিছু করে কালানুক্রমিক ক্রমে দেখানোর চেষ্টা করছি:

grep squiggle /var/log/messages*

দুর্ভাগ্যক্রমে গ্লোব প্যাটার্নটি বর্তমানে সক্রিয় ফাইলের সাথে প্রথম মেলে। যেমন।

/var/log/messages
/var/log/messages-20120220
/var/log/messages-20120227
/var/log/messages-20120305
/var/log/messages-20120312

এর অর্থ হ'ল সাম্প্রতিক বার্তাগুলি chতিহাসিক বার্তাগুলির পরে কালানুক্রমিক ক্রমে প্রদর্শিত হবে in

messagesতালিকার শেষে খালি ম্যাচটি (উদাহরণস্বরূপ ) প্রদর্শন করার জন্য কী কোনওভাবে গ্লোব প্যাটার্ন আচরণটি সামঞ্জস্য করা সম্ভব ?

যদি তা না হয় তবে এই সমস্যাটির সমাধান করার ভাল উপায় কী হবে?


2
আপনি আউটপুটটি বিপরীতে ব্যবহার করতে পারেন tac: grep squiggle /var/log/messages* | tac...
পিবিএম

উত্তর:


8

আমি গ্লোবিংয়ের ক্রম পরিবর্তন করার কোনও উপায় জানি না তবে আপনার ক্ষেত্রে এটির পক্ষে সহজ উপায় রয়েছে:

grep squiggle /var/log/messages-* /var/log/messages

যেমন messagesআপনার গ্লোব প্যাটার্নে থাকা ফাইলগুলির সাথে মেলে না এবং এটি grepযুক্তি তালিকার শেষে যুক্ত করুন ।


তার জন্য ধন্যবাদ. সমস্যাটি হওয়ার চেয়ে জটিলটিকে আরও জটিল করে তুলছে!
বুরহান আলী

1
বা অতিরিক্ত fanciness এবং কম অপ্রয়োজনীয় জন্য, ব্যবহার grep squiggle /var/log/messages{-*,}। (আপনি যদি এটি গুগল করতে চান তবে "বাশ ব্রেস সম্প্রসারণ" নামে পরিচিত))
ওয়াইল্ডকার্ড

11

জেডএসে, আপনি গ্লোব কোয়ালিফায়ারের সাথে ম্যাচের ক্রম (অন্যান্য জিনিসগুলির মধ্যে) নিয়ন্ত্রণ করতে পারেন ।

echo /var/log/messages*        # usual lexicographic order
echo /var/log/messages*(On)    # reverse lexicographic order
echo /var/log/messages*(om)    # reverse chronological order (ascending mtime)
echo /var/log/messages*(Om)    # chronological order order (descending mtime)

(আরও সম্ভাবনার জন্য ম্যানুয়ালটি দেখুন)) এমনকি সাম্প্রতিক সংস্করণগুলিতে oeবা এর সাথে তুলনা ফাংশন সরবরাহ করে আপনি নিজের সাজানোর ক্রমটি সংজ্ঞায়িত করতে পারেন o+

এখানে ফাইলগুলির যথাযথ ক্রম হল কালানুক্রমিক ক্রম। নামের উপর ভিত্তি করে আপনি সহজেই এটি অনুকরণ করতে পারেন, যদিও এটি বাশেও কাজ করে:

grep squiggle /var/log/messages{-*,}

আমি zsh দ্বারা ক্রমশ মুগ্ধ হয়েছি এটি সম্পর্কে আমি যত বেশি পড়ি।
বুরহান আলী

আমি কি zsh থেকে ফাইলগুলি (ক্রমানুসারে) পেতে এবং সেগুলি আবার ব্যাশে পাঠাতে পারি?
Wowfunhappy

@ ওয়াওফুনহাপি হ্যাঁ তবে বিশেষ চরিত্রগুলি সঠিকভাবে আচরণ করার জন্য আপনার যত্নবান হওয়া দরকার। একটি নতুন প্রশ্ন জিজ্ঞাসা করুন।
গিলস 'দু: খিত হওয়া বন্ধ করুন'

2

আপনি ls -tr এর সাথে মিলিত ব্যাকটিক্স ব্যবহার করতে পারেন (মোড টাইম এবং বিপরীতে অনুসারে সাজান):

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