একাধিক জন্য ট্রি কমান্ড অন্তর্ভুক্ত এবং বাদ দেয়


33

আপনি দয়া করে ফলাফলগুলি ফিল্টার করার জন্য ট্রি কমান্ডটি ব্যবহারের একটি উদাহরণ নীচে দিতে পারেন:

  • ডিরেক্টরি উপেক্ষা (বলা bin, unitTest)
  • শুধুমাত্র এক্সটেনশন থাকার নির্দিষ্ট ফাইল তালিকা (বলুন .cpp, .c, .hpp, .h)
  • মানদণ্ডের সাথে মিল রেখে কেবলমাত্র পরিণতিযুক্ত ফাইলগুলির সম্পূর্ণ পাথ-নাম সরবরাহ করা।

উত্তর:


54

একটি উপায় হ'ল -Iএবং -Pস্যুইচগুলির সাহায্যে নিদর্শনগুলি ব্যবহার করা :

tree -f -I "bin|unitTest" -P "*.[ch]|*.[ch]pp." your_dir/

-fপ্রতিটি ফাইলের জন্য সম্পূর্ণ পাথ ছাপে, এবং -Iপ্যাটার্ন বাদ ফাইলগুলিকে এখানে একটি উল্লম্ব দণ্ড দ্বারা পৃথক। -Pসুইচ inlcudes শুধুমাত্র ফাইল একটি নির্দিষ্ট এক্সটেনশন মিলে প্যাটার্ন তালিকাভুক্ত।


6
দ্রষ্টব্য: আপনার -আমি পতাকায় স্ল্যাশ trailing, যেমন অন্তর্ভুক্ত করবেন না -I bin, না -I bin/
থারস্ম্মোনার

এটি একটি ত্রুটি করেsed: illegal option -- I
ফ্রান্সোইস রোমেন

4

ব্যবহারের findএবং treeকমান্ড খোঁজ ব্যবহার যে pruneঅনুসন্ধান এবং ব্যবহারের ডিরেক্টরি বাদ দেওয়ার tree -Pপ্যাটার্ন মধ্যে অনুসন্ধানের জন্য।

ছাঁটাই স্যুইচটি ব্যবহার করুন, উদাহরণস্বরূপ, আপনি যদি miscডিরেক্টরিটি বাদ দিতে চান তবে আপনার সন্ধানের -path ./misc -prune -oআদেশে একটি যুক্ত করুন ।

যেমন। find . -path ./misc -prune -o -exec tree -P <pattern> {} \;অথবা আপনি ব্যবহার করতে পারেন-name "*.cpp" in find

একাধিক ডিরেক্টরি ব্যবহার বাদ দিয়ে

find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o


আমার জন্য, উদাহরণ সহ উদাহরণটি ত্রুটি দেয় "খুঁজে দিন: '-o' এর পরে একটি এক্সপ্রেশন প্রত্যাশিত
ওয়েবকোমার

আপনি শুধু চেষ্টা করেছিলেন find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -oবাfind . -path ./misc -prune -o -exec tree -P *.cpp {} \;
harish.venkat

2

আসল সমাধানটি হ'ল সম্পূর্ণ পাথ আউটপুট করা, অযাচিত পাথগুলি ফিল্টার করা এবং অবশেষে ফলাফলগুলি ঠিক করা।

tree -df | egrep -v "\./(bin|unitTest)/.*" | sed -r 's%\./.*/%%g'

যদি আউটপুটে সমস্ত ফাইলের প্রয়োজনীয় হয় তবে "ডি" প্যারামিটারটি সরিয়ে দিন।

আপনি জাপানী ভাষা বুঝতে পারলে বিস্তারিত ব্যাখ্যা পাওয়া যাবে: http://qaon.net/press/archives/572


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