গ্রেপ সহ কোনও স্থানের অক্ষর কীভাবে অন্তর্ভুক্ত করবেন?


17

আমি উদাহরণস্বরূপ একটি ফাইল আছে

$ cat example

kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf

এবং যখন আমি grepআগে একটি স্পেস আছে এমন লাইনটি পেতে ব্যবহার করি, তখন আমি .pdfএটি পাব বলে মনে হয় না।

grep *.pdf example

কিছুই প্রত্যাবর্তন করে না, (আমি বলতে চাই, "গ্রেপ, শূন্যের আগে বা আরও বেশি জায়গাগুলির সাথে মেলে .pdf", তবে কোনও ফলাফল নেই)

এবং যদি আমি ব্যবহার করি:

grep i*.pdf example

kali.pdf
linux.pdf
ubuntu.pdf
example.pdf.
this.pdf
grep .pdf

সমস্ত লাইন ফিরে আসে, কারণ আমি বলছি "গ্রেপ, আমার সাথে iএক বা শূন্য বার মিলাও, ঠিক আছে"।

এবং সর্বশেষে:

grep " *.pdf" example

কোন ফলাফল ফেরত না

এই নমুনার জন্য, আমি দেখতে চাই

grep .pdf 

আউটপুট হিসাবে

আমার চিন্তায় কী ভুল?

উত্তর:


31

নিশ্চিত হয়ে নিন যে আপনি আপনার অভিব্যক্তিটি উদ্ধৃত করেছেন। আমি মনে করি শেল ওয়ার্ডস্প্লিটটিং এখানে আপনার সমস্যাগুলির মধ্যে একটি, তবে আপনার সবসময় আপনার রেজেক্সকে উদ্ধৃত করা উচিত, কারণ সমস্ত ধরণের জিনিস অন্যথায় ভুল হয়ে যাবে।

$ grep ' \.pdf' example
grep .pdf

অথবা যদি একাধিক স্পেস থাকতে পারে ( *পূর্ববর্তী জায়গাগুলি নেই এমন ক্ষেত্রে আমরা এটি ব্যবহার করতে পারি না )

grep ' \+\.pdf' example

+এর অর্থ "পূর্ববর্তী চরিত্রের এক বা একাধিক" BRE- এ আপনাকে \এই বিশেষ ক্রিয়াটি পেতে এড়াতে হবে , তবে আপনি এড়াতে এর পরিবর্তে প্রাক ব্যবহার করতে পারেন

grep -E ' +\.pdf' example 

এছাড়াও আপনি ব্যবহার করতে পারেন \sমধ্যে grepএকটি স্থান মানে

grep '\s\+\.pdf' example

আমাদের আক্ষরিক অব্যাহতি হওয়া উচিত .কারণ রেজেক্সে .কোনও চরিত্রের অর্থ, যদি না এটি একটি চরিত্রের শ্রেণিতে থাকে।


আপনি সর্বপ্রথম কে লক্ষ্য করেছিলেন যে শেষ লাইনে স্থান রয়েছে।
পাইলট 6

@ পাইলট thanks ধন্যবাদ প্রশ্নটি কিছুটা বিভ্রান্তিকরভাবে লেখা হয়েছিল :)
Zanna

প্রশ্নটি যে প্রথম বুঝতে পেরেছিল তাদের জন্য এখানে কিছু ব্যাজ থাকা উচিত ;-)
পাইলট 6

@ জান্না, এই ক্ষেত্রে যে কোনও সময় ইরেপ করা কি কোনও ভুল আছে? egrep সর্বদা আপনার সুবিধা পায় ...
সল্ফিশ

@solfish egrep(, Regex শৈলী পরিপ্রেক্ষিতে আমি যতদূর জানি) হিসাবে একই grep -E, এবং আমি বিশ্বাস করি আমরা আধুনিক ব্যবহার বোঝানো হয় - egrepইত্যাদি কল্পনানুসারে পক্ষে অবচিত হয় grepএর পতাকা
Zanna
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.