অনুসন্ধানে মুদ্রণ0 বিকল্পের সাথে কম আউটপুট পাওয়া গেল?


10

আমি ম্যান পৃষ্ঠাটি এবং অন্যান্য উল্লেখগুলি পড়েছি, তবে -print0বিকল্পের সাথে সন্ধান করার আচরণের ফলে আমি এখনও বিভ্রান্ত ।

-print0      This primary always evaluates to true.  It prints the pathname of
             the current file to standard output, followed by an ASCII NUL
             character (character code 0).

প্রথম আদেশ:

$ find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg" 2> /dev/null
/some/path//asdf199Intro-5kqlw.jpeg
/some/path/199intro-2jjaj.JPEG
/some/path/199intro-3.jpg
/some/path/wuer199intro-4.JPG
/some/path/xbzf199INTRO-1.jpg

দ্বিতীয় আদেশ:

$ find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg" 2> /dev/null -print0
/some/path/136intro-3.jpg/some/path/wuer136intro-4.JPG/some/path/xbzf136INTRO-1.jpg

আমি দেখতে পাচ্ছি যে দ্বিতীয় কমান্ডের ফাইলের নামগুলি নাল অক্ষর দ্বারা পৃথক করা হয়েছে, তবে কেন আমি উপরে 5 এর বিপরীতে 3 আউটপুট পাব?


1
প্রযুক্তিগতভাবে, এগুলি বাতিল হয় , নালকে আলাদা করা হয় না। (সর্বশেষে প্রতিটি পথ নাম সহ একটি
এন.এল.यू

উত্তর:


12

আপনার প্রথম উদাহরণ

 find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg"

এর সমতুল্য নয়

 find /some/path/ -iname "*intro*jpeg" -o -iname "*intro*jpg" -print

এটি সমান

 find /some/path/ \( -iname "*intro*jpeg" -o -iname "*intro*jpg" \) -print

যখন আপনার এক্সপ্রেশনটিতে ব্যতীত অন্য কোনও পদক্ষেপ রয়েছে -purge, তখন অন্তর্ভুক্ত মুদ্রণটি আর যুক্ত করা হবে না। তুমি চাও

find /some/path/ \( -iname "*intro*jpeg" -o -iname "*intro*jpg" \) -print0 2> /dev/null

আপনি কেবলমাত্র 3 ফাইলের নাম পাবার কারণটি হ'ল এটি হ'ল যা আপনার দ্বিতীয় শর্তের সাথে মিলছে (যেটির সাথে একটি ক্রিয়া রয়েছে)। আপনি যা টাইপ করেছেন তার অর্থ আসলে

find /some/path/ \( -iname "*intro*jpeg" \) -o \( -iname "*intro*jpg" -print0 \)

যা আশা করে যে এটি কেবল 1 পক্ষের কিছু মুদ্রণ করে তা পরিষ্কার করে দেয়।


এফওয়াইআই আপনি এর সাথে অনুসন্ধানের এক্সপ্রেশনটি সহজ করতে পারেন: find /some/path -iregex '.*intro.*\.jpe?g'... এবং যেহেতু এখন কেবলমাত্র একটি এক্সপ্রেশন রয়েছে এটি সিজেএম দ্বারা হাইলাইট করা সমস্যাটি এড়াবে।
কাস

@ সিজেএম প্রথম বন্ধনী আমার দিনটি বাঁচিয়েছে, আমি আমার স্ক্রিপ্টে একটি 0-দিনের বাগ ঠিক করেছি !!!
লিজেই

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