কোন প্যাটার্নের সাথে মিলছে ফাইলগুলি না দেখার জন্য গ্রেপ ব্যবহার করবেন?


0

আমি কোনও প্যাটার্নের সাথে মেলে না এমন সবকিছু বাদ দেওয়ার জন্য পাইপের সাহায্যে গ্রেপ ব্যবহার করে খুব পরিচিত। তবে আমি কী কোনও প্যাটার্নের সাথে মেলে এমন সমস্ত কিছু বাদ দেওয়ার জন্য গ্রেপ ব্যবহার করতে পারি? আমি ভেবেছিলাম এটি কাজ করবে,

-v

বিকল্প, নীচের মত:

/ মিডিয়া-নাম "কিছু নাম" | সন্ধান করুন grep -v "অনুমতি অস্বীকার"

তবে এটি কাজ করছে না। কোন ধারণা কেন এবং তার পরিবর্তে আমার কী করা উচিত?

উত্তর:


1

" Permission denied" থেকে findআউটপুটটি স্টডআউটের পরিবর্তে স্টডারারে চলে আসে , এবং grepঅংশটি স্ট্ডার-এ দেখানো হয়েছে এমনটি প্রভাবিত করে না। আপনি এগুলি দুটি ফিল্টার করতে পারেন এখানে:

স্টাডারকে পুনঃনির্দেশ করা হচ্ছে /dev/null

find /media -name "somenamehere" 2>/dev/null

স্টাডারকে স্টডআউটে পুনঃনির্দেশ করা হচ্ছে

find /media -name "somenamehere" 2>&1 | grep -v "Permission denied"

ইনপুট-আউটপুট পুনঃনির্দেশের জন্য অতিরিক্ত সংস্থানগুলি


ধন্যবাদ!!! মোটামুটি জ্ঞান তোলে, কিন্তু আমি নিজে থেকে তা জানতে পারতাম না। উপরের # 1 সুন্দরভাবে কাজ করেছে এবং দুজনের পক্ষে আরও সহজ বলে মনে হচ্ছে, তবে আমি কি এইটুকু মনে করি সঠিক যে # 2 আরও নিরাপদ হতে পারে যদি অন্য কোনও ত্রুটি থাকে ("অনুমতি অস্বীকার করা হয় না") যা দেখতে গুরুত্বপূর্ণ হতে পারে? আপনি কোন উদাহরণ চিন্তা করতে পারেন? আমি সাধারণত দেখার চেষ্টা করছি যে কোনও ফাইল (সিএফ কার্ডের মতো একটি ছবি) এখনও ব্যাকআপ ডিরেক্টরিতে অনুলিপি করা হয়েছে কিনা। কিন্তু এমন কিছু সময় থাকতে পারে যখন এই ত্রুটিগুলি কার্যকর হয়? আবারো তোমাকে ধন্যবাদ!
বিভ্রান্ত

@ কনফিউজড: আপনি স্টডারারের ত্রুটিগুলি 2>stderr.logপরিবর্তে পরে পর্যালোচনা করার জন্য কোনও ফাইলে সংরক্ষণ করতে পারেন 2>/dev/null। তারপরে আপনি খুলতে পারবেন stderr.logএবং কী কী মিস করেছেন তা দেখতে পেলেন।
ডেলটিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.