ফাইল এক্সটেনশন দ্বারা গিট গ্রেপ


91

আমি জানি যে, যদি আমি নির্দিষ্ট কিছু এক্সটেনশানযুক্ত ফাইলগুলিতে কেবল কোনও প্যাটার্নের জন্য গ্রেপ করতে চাইতাম তবে আমি এটি করতে পারি:

// searches recursively and matches case insensitively in only javascript files
// for "res" from the current directory
grep -iIr --include=*.js res ./

আমি গিট গ্রেপ এর মাধ্যমে এটি করার উপায় অনুসন্ধান করার চেষ্টা করেছি (এটি গাছের সাথে থাকা সূচকগুলি থেকে গিট গ্রেপের গতির সুবিধা নিতে) তবে কোনও লাভ হয়নি। আমি এখানে দেখেছি যে নির্দিষ্ট ধরণের ফাইল বাদ দিয়ে সম্ভব নয় is

উত্তর:


145

হ্যাঁ, উদাহরণস্বরূপ:

git grep res -- '*.js'

4
একটি সামান্য পরিবর্তন - আপনি আপনার ভাণ্ডারের মূলে git grep res -- '/*.js'না থাকলে আরও ভাল হতে পারে ...
twalberg

4
@ টোটালবার্গ: তবে মন্তব্যটি পরামর্শ দিয়েছে যে তিনি বর্তমান ডিরেক্টরিটি [নীচে] থেকে দেখতে চান, অবশ্যই?
সিবি বেইলি

4
কেবলমাত্র অতিরিক্ত তথ্য: আপনি যদি ফাইল এক্সটেনশনের একটি সেট নির্দিষ্ট করতে চান তবে এটি ব্যবহার করতে পারেন git grep res -- *.js *.csএটি অন্য প্রশ্নের মধ্যে রয়েছে
stk_sfr

4
কী --সাধন করে?
এহেল্কে

4
'* .Js' এর আশেপাশের একক উদ্ধৃতিগুলি ভুলে যাওয়ার একটি গুরুত্বপূর্ণ বিষয়। তারা যদি সেখানে না থাকে তবে এটি কার্যকর হবে না। (শিটটি গিটে পৌঁছানোর আগেই এটি আটকাবে)।
হাসেন

3

এটি করার চেষ্টা করুন:

find . -type f -iname '*.js' -exec grep -i 'pattern' {} +

4
{}বর্তমান ফাইল এবং এর +অর্থ একই সাথে সর্বাধিক যুক্তিগুলি একই সাথে আচরণ {} \;করতে হবে (একসাথে কেবলমাত্র একটি ফাইল)। চেক করুনman find
গিলস কুইনট

প্রশ্নটি "গিট" গ্রেপের জন্য জিজ্ঞাসা করে।
জোক

0

আপনি যদি সমস্ত শাখা জুড়ে অনুসন্ধান করতে চান তবে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:

git log -Sres --all --name-only -- '*.js'

(আমি দেখতে পাচ্ছি আপনি গিট গ্রেপ নির্দিষ্ট করেছেন; আমার কাছে এখানকার পদ্ধতির মনে রাখা সহজ এবং সহজ বলে মনে হচ্ছে - আরও অন্যান্য ক্রিয়াকলাপগুলির মতো যা আমার সাধারণত প্রয়োজন))

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