যুক্তিযুক্ত বা ফাইন্ডস্টেআরেক্সের সাথে তুলনা করা


11

এটি একটি নির্বোধ প্রশ্ন হতে পারে তবে ডকুমেন্টেশন পড়ার পরেও আমি এখনও নিশ্চিত নই যে ".cpp" বা ".h" রয়েছে এমন কোনও ফাইলের সমস্ত লাইন কীভাবে সন্ধান করতে হবে ।

এটা করার কোন উপায় আছে?

উদাহরণস্বরূপ (কাজ করে না):

findstr /i .cpp,.h // , == OR

উত্তর:


9

এটি একটি শট দিন, আপনার জন্য কাজ করা উচিত।

findstr /i "\.cpp \.h" myfile.txt

উভয় উদ্ধৃতিতে মোড়ানো এবং একটি স্থানের সাথে পৃথক করুন। দ্রষ্টব্য, আপনাকেও পালাতে হবে উভয় মধ্যে।


4

আপনার যদি বাক্যাংশ (স্পেস বিভাজিত শব্দ) অন্তর্ভুক্ত করার দরকার হয় তবে আপনি এটি করতে পারেন:

findstr /i /c:"IBSS" /c:"WDI Version" /c:"Soft Ap"

বা যদি আপনি কিছু অযাচিত সারি পেয়ে থাকেন তবে আপনি সেগুলি /vপ্যারামিটার ব্যবহার করেও বাদ দিতে পারেন :

findstr /i /c:Hosted /c:Version /c:Driver | findstr /v /i /c:drivers /c:native

(এটি উইন্ডোজ 7 এবং উইন্ডোজ 10 এ পরীক্ষিত)


দ্রষ্টব্য, বড় ডেটাসেটগুলি দক্ষতার সাথে প্রক্রিয়াকরণের জন্য, সম্ভব হলে দ্বিতীয় FindStr কমান্ডটি এড়ানো বা এটি যখন দেওয়া না হয় তখন লাইনগুলি কমাতে ভাল। এটি সম্ভব যেখানে FindStr কমান্ডের দ্বারা প্রস্তাবিত সরলিকৃত রেজেক্স তুলনা ব্যবহার করে শর্তাদি কোনওভাবে শর্তাবলীর সাথে ওভারল্যাপ করা যায়। উদাহরণস্বরূপ "ড্রাইভার" মিলিয়ে দেওয়া হয়েছে তবে "ড্রাইভারএস" বাদ দিয়ে মূল্যায়ন করার জন্য দ্বিতীয় ফাইন্ডএসআরকে দেওয়া লাইনগুলি হ্রাস করে বড় ডেটাसेटগুলিতে দ্রুত হওয়ার সম্ভাবনা রয়েছে। অর্থাত্FindStr /I /R /C:"Hosted" /C:"Version /C:"Driver[^S]" | FindStr /v /i /c:"Native"
বেন পারসোনিক

এছাড়াও, আপনি যদি নিজের নির্দিষ্ট ডেটাসেটটি যথেষ্ট পরিমাণে জানেন তবে আপনি ইতিমধ্যে বুঝতে পারেন যে আপনি যে শর্তাদি আপনার ডেটাসেটের বেশিরভাগের জন্য অ্যাকাউন্টকে বাদ দিতে চান, তারপরে প্রথমে বর্জনীয় বিবৃতি দেওয়া সুবিধাজনক হতে পারেFindStr /V /I /C:"Native" /C:"Drivers" | FindStr /I /R /C:"Hosted" /C:"Version /C:"Driver"
বেন পারসোনিক

0

আপনি কীভাবে ORযুক্তি গঠন করেন তা নির্ভর করে আপনি প্রযোজ্য ক্ষেত্রে কী এবং আপনার প্রত্যাশিত ভবিষ্যতের পরিবর্তনগুলির উপর নির্ভর করে।

যদি এটি এমন কোনও প্রশ্নের তালিকা থাকে যার মধ্যে কোনও সাদা জায়গা নেই তবে আপনি দ্রুত এবং নোংরাভাবে এটি এটি করতে পারেন:

findstr "thing1 thing2 thing3 thing4 thing5" এবং যদি এই জিনিসের কোনও উপস্থিত থাকে তবে এটি সত্যকে মূল্যায়ন করবে এবং 0 থেকে প্রস্থান করবে।

আপনি যা সন্ধান করছেন তাতে যদি সাদা স্থান থাকে তবে আপনাকে প্যারামিটারের findstrসাথে আক্ষরিক অনুসন্ধানের স্ট্রিং ব্যবহার করতে হবে /c:""। যদি কোনও সাদা জায়গা না থাকে তবে আপনি এই ধরণের প্যারামিটারটি ব্যবহার করতে পারেন।

/C:string Uses specified string as a literal search string.

তবে , আপনি দ্রুত ও মলিন সঙ্গে আক্ষরিক একত্রিত করতে পারবেন না । উদাহরণস্বরূপ, এটি কাজ করবে না:

findstr "thing1 thing2" /c:"thing3 thingy"

আপনাকে পূর্বের পরামিতিগুলিকে আক্ষরিক পরামিতিগুলিতে রূপান্তর করতে হবে, এরকম:

findstr /c:"thing1" /c:"thing2" /c:"thing3 thingy"

এর কারণে, আক্ষরিক বিকল্পটি ব্যবহার করা আরও ভাল অনুশীলন কারণ এটি গতিশীল স্ক্রিপ্টগুলির সাথে আরও ভাল স্কেল করবে। তবে যদি এটি কেবল কোনও স্থায়ী ক্যোয়ারির সেট থাকে যেখানে কোনও সাদা জায়গা নেই, দ্রুত এবং নোংরা উপায়টি যথেষ্ট।

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