একটি প্রক্রিয়া আউটপুট ফিল্টার করতে গ্রেপ ব্যবহার


3

আমি command | grep -v "JavaScript strict warning"একটি কমান্ডের আউটপুট ফিল্টার করতে ব্যবহার করছি (সতর্কতা গোপন করছি)। গ্রেপ কমান্ডটি ভালোভাবে কাজ করে যখন আমি এটির মতো এটি পরীক্ষা করি:

$ printf "JavaScript strict warning: warning\nNot a warning\nJavaScript strict warning: warning\nJavaScript strict warning: warning\n" | grep -v "JavaScript strict warning"

আউটপুটটি হ'ল:

Not a warning

যাইহোক, যখন আমি চলমান আউটপুট ফিল্টার করি, JavaScript strict warningতখনও লাইনগুলি তার মধ্যে দিয়ে আসে। আমি বিশ্বাস করি যে এটি ঘটছে কারণ আসল কমান্ডটি অন্য একটি প্রক্রিয়া তৈরি করছে। নতুন প্রক্রিয়াটির আউটপুট ফিল্টারিং করার কোনও উপায় আছে কি?


1
আপনি যে আউটপুটটি দেখছেন তা স্টডআউট এবং স্ট্ডার হতে পারে, তবে একটি পাইপ কেবল স্টাডআউটে চলে যায়।
ম্যাক্লিওড

@ ম্যাক্লিওডের কি এটি স্টারার আছে তা জানার কোনও উপায় আছে? স্টার্ডারকে অন্য পাইপে যাওয়ার কোনও উপায় আছে কি?
নাথানচাহিল

প্রকৃতপক্ষে, স্রেফ এটি আউট। আমি 3>&1 1>&2 2>&3পাইপের আগে যুক্ত করেছিলাম , এবং সমস্ত কিছু কাজ করে। সঠিক নির্ণয়ের জন্য ধন্যবাদ! আপনি যদি উত্তর যুক্ত করেন তবে আমি তা গ্রহণ করব।
নাথানচাহিল

উত্তর:


2

আপনি যে আউটপুটটি দেখছেন তা সম্ভবত স্টেডার - একটি পাইপ কেবল স্টডআউটে ডিফল্টরূপে যায়।

আপনি যেমন আপনার মন্তব্যে উল্লেখ করেছেন আপনি যা যা পাস তা সামঞ্জস্য করতে পুনঃনির্দেশগুলি ব্যবহার করতে পারেন।

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