কীভাবে লজিক্যাল ওআর ব্যবহার করবেন?


12

ব্যাশে শেল এর lsমাধ্যমে একটি লজিকাল ওআর কার্যকারিতা ব্যবহার করতে পারে (অবশ্যই আমি এটিও করতে পারি ls name1 name2তবে আমার সত্য উদাহরণগুলি আরও জটিল):

ls @(name1|name2)

এটি ব্যবহার করে কি কোনও উপায় আছে find?

আমার নিষ্পাপ বাস্তবায়ন:

find . -maxdepth 1 -name @("name1"|"name2") 

কাজ করে না (এটি কিছুতেই আউটপুট করে না)


4
আপনি ম্যানপেজের OPERATORSবিভাগটি পড়েছেন find?
স্টিল্ড্রাইভার

উত্তর:


19

আপনি -oযৌক্তিক জন্য ব্যবহার করতে পারেন OR। তবে সাবধান থাকুন যে সমস্ত findপূর্বাভাসকারীটির যৌক্তিক মান রয়েছে তাই আপনার সাধারনত ORপ্যারেন্সের সাথে একসাথে এড জিনিসগুলি গোষ্ঠীভুক্ত করতে হবে । এবং যেহেতু প্যারেনগুলির শেলের একটি অর্থ রয়েছে, আপনার এগুলি এড়াতেও হবে:

find /some/dir -maxdepth 1 \( -name '*.c' -o -name '*.h' \) -print

5

আপনার প্রশ্নের উত্তর দিতে, আপনি -oবিকল্পটি ব্যবহার করতে পারেন :

   expr1 -o expr2
          Or; expr2 is not evaluated if expr1 is true.

   expr1 -or expr2
          Same as expr1 -o expr2, but not POSIX compliant.

এটার মত:

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