উইন্ডোজ কমান্ড লাইনে নির্দিষ্ট প্যাটার্ন সহ ফাইলের নামগুলি সন্ধান করবেন?


11

কোনও ডিরেক্টরি এবং এর উপ-ডিরেক্টরিতে নির্দিষ্ট প্যাটার্নের কোনও ফাইল সন্ধান করার চেষ্টা করা হচ্ছে। আমি চেষ্টা করেছিলাম:

C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found

মত ফাইল খুঁজে প্রত্যাশায়

abc.txt.r12222
tjy.java.r9994

যেখানে এসভিএন দ্বারা করা অক্ষরের r পরে একটি নম্বর সংযুক্ত করা হয়।

আমি কি ভুল করছি?


3
এসইউতে আপনাকে স্বাগতম! স্ট্যাকেক্সচেঞ্জ সাইটগুলিতে, যখন কোনও উত্তর আপনাকে সহায়তা করে, লোককে ধন্যবাদ জানানোর উপায় হ'ল তাদের উত্তরটি উর্ধ্বকরণ করা এবং এটি যদি আপনার সমস্যার সমাধান করে তবে তা (কোনও উত্তরের বামে চেকমার্কে ক্লিক করে) গ্রহণ করা। আমি কেবল বলছি কারণ আপনি নিজের প্রশ্নের উত্তর পেয়েছেন এমন কোনও উত্তর আপনি গ্রহণ করেন নি বলে মনে হচ্ছে।
টারডন

উত্তর:


10

কয়েকদিন আগে আমি স্ট্যাক ওভারফ্লোতে এর উত্তর দিয়েছি। /programming/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872

আপনার ক্ষেত্রে এটির মতো দেখতে হবে:

dir * /s/b | findstr \.r[0-9]+$

হালনাগাদ

অন্যান্য উদাহরণগুলির মধ্যে একটিতে * * .r [0-9] * $ "রেকর্ডগুলিও খুঁজে পান যা 'r' এ শেষ হয় কারণ * কোয়ানটিফায়ারটি 0 বা তার বেশি হয় more


হাই ক্যাপটারসনভ 1 - দির * / এস / বি সাড়া দেওয়ার জন্য ধন্যবাদ Findstr \ .r [0-9] * $ কাজ করে
chz

সন্ধানকারী মনে হয় 1 বা বহু চিহ্ন '+'
স্কট চু

@ স্কটচু একটি উদাহরণ দিয়ে একটি নতুন প্রশ্ন শুরু করুন। (আমি এর উত্তর 5 বছর আগে দিয়েছি))
নিরঙ্কুশ

0

আপনার জন্য আমার পরামর্শটি হ'ল এটি করা grep- ইউএনআইএক্স-এর মতো সিস্টেমগুলির জন্য একটি ইউটিলিটি যা উইন্ডোতে পোর্ট করা হয়েছে এবং নিয়মিত এক্সপ্রেশন ব্যবহার করে লাইনগুলি মেলাতে পারে।

grepMinGW এর এমএসওয়াইএস প্যাকেজের সাথে অন্তর্ভুক্ত রয়েছে, ইনস্টলারটি এখানে পাওয়া যাবে । (কেবলমাত্র এমএসওয়াইএস ইনস্টল করুন)

তারপরে আপনাকে আপনার পাথ ভেরিয়েবলের সাথে এমএসওয়াইএস সরঞ্জাম যুক্ত করতে হবে, এমএসওয়াইএসের জন্য ডাইফাল্ট ডিরেক্টরিটি C:\MinGW\msys\1.0\bin

অবশেষে আপনি এই আদেশটি দিয়ে আপনার সেচ করতে পারেন:

ls -a | grep ^.+\..+\.r[0-9]+$

... যার অর্থ: "থেকে আউটপুট পেতে ls -a(লুকানো ফাইল সহ তালিকা ফাইল) এবং এটি পাস করার grepম্যাচ লাইন যে মত চেহারা .R [0-9] * (অন্তত একটি অক্ষর প্রতিটি তারকাচিহ্ন দ্বারা প্রতীক সঙ্গে)"।


হাই গ্রোনস্টজ প্রতিক্রিয়াটির জন্য ধন্যবাদ; আমি চেষ্টা করেছি$ ls -R | grep -H ^.*[0-9]$ (standard input):res.jar.r469621 (standard input):res.jar.r464460 (standard input):test.jar.r46521 (standard input):test.jar.r46970
chz

হাই, আমি এখনও ফাইলের পুরো পথের নামটি পাই না; আমি কেমন করে ঐটি করি ? যেমন c:\pager\test.jar.r46521(স্ট্যান্ডার্ড ইনপুট) এর বিপরীতে: test.jar.r46521
chz

ls | গ্রেপ দির সমান উইন্ডোজ খুঁজে।
নিখুঁত

0

আপনি এটি চেষ্টা করতে পারেন:

dir /a| findstr .r[0-9]*$

সাহায্যের জন্য, টাইপ করুন findstr /?


হাই mfm4aa সাড়া দেওয়ার জন্য ধন্যবাদ - পোষাক কাজ করতে পারে বলে মনে হচ্ছে না; আমি সমস্ত সংমিশ্রণ চেষ্টা করেছি এবং কোনও পিঁপড়ে তালিকাভুক্ত উত্তর দেয় না: উদাহরণস্বরূপ ইনলাইনC:\Temp>findstr /S /B [0-9] . C:\Temp>findstr /S /B r[0-9]$ . C:\Temp>findstr /S /B $.*r[0-9]$ C:\Temp>findstr /S /B $.*r*$ C:\Temp>findstr /S /B $.*r..*$ C:\Temp>findstr /S /B $.*r\..*$ C:\Temp>findstr /S /B /R $.*r\..*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" . C:\Temp>findstr /S /B /R "$.*\..r[0-9]$" . C:\Temp>findstr /S /B /R "$.*[0-9]*" . C:\Temp>findstr /S /B /R "$*[0-9]*" .
chz

দয়া করে চেষ্টা করুন:C:\Temp>dir /aa| findstr .r[0-9]*$
এন্ডোরো

হাই এমএফএম লেখার জন্য ধন্যবাদ - আমি এখনও খুঁজে C:\Temp>dir /aa | findstr .r[0-9]*$ File Not Found
পাচ্ছি

:) কেবল টাইপ করুন dir /aa| findstr .r[0-9]*$। এটি এখানে কাজ করে ...
এন্ডোরো

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