আমি যখন লিখি
$ grep \$
তারপরে আমি টার্মিনালে যা কিছু টাইপ করি তা টার্মিনালে মেলে এবং মুদ্রিত হয়। কীভাবে \$
ব্যাখ্যা করা হচ্ছে?
আমি যখন লিখি
$ grep \$
তারপরে আমি টার্মিনালে যা কিছু টাইপ করি তা টার্মিনালে মেলে এবং মুদ্রিত হয়। কীভাবে \$
ব্যাখ্যা করা হচ্ছে?
উত্তর:
শেল ব্যাখ্যা করা হয় \$
এবং, grep মাধ্যমে এটি ক্ষণস্থায়ী $
, লাইন চরিত্র শেষে। সুতরাং আপনার লাইনের একটি সমাপ্তি ধরে নিয়েছে, এটি মিলবে :-)
আপনি যদি $
গ্রেপ-তে কোনও বাস্তবের সাথে মিল রাখতে চান তবে এর মধ্যে একটি ব্যবহার করুন:
grep \\\$
grep '\$'
সাবেক সালে শেল ব্যাখ্যা \\
হিসাবে \
এবং \$
হিসাবে $
, দান \$
। পরবর্তীকালে, এটি একেবারেই ব্যাখ্যা করে না।
আপনার প্রশ্নের প্রশ্নে কেন \$
ডলারের চিহ্নের সাথে দ্বি-চরিত্রের ক্রমটি মিলে যায়, নিয়মিত অভিব্যক্তি grep
কিছু উদ্দেশ্যে বিশেষ অক্ষর ব্যবহার করে। এর মধ্যে কয়েকটি হ'ল:
$ end of line
^ start of line
. any character
+ 1 or more of the preceeding pattern
* 0 or more of the preceeding pattern
{n,m} between n and m of the preceeding pattern
[x-y] any character between x and y (such as [0-9] for a digit).
অনেক অন্যান্য সহ।
আপনি যখন একটি লিটলার চরিত্রটিকে সাধারণত একটি বিশেষ চরিত্র হিসাবে বিবেচনা করেন তবে আপনি এটিকে এড়াতে হবে যাতে grep
এটি স্বাভাবিক চরিত্র হিসাবে বিবেচনা করবে।
ls \$
এবং আমরা দেখতে পাচ্ছি যে "ls: $: এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই", এটি দেখতে যে \ un কে es এ অনস্কেপড করা হয়েছে তবে es \ কে es to এ থেকে আটকানো হয়েছে, এবং আরও কিছু।
শেল প্রথম, প্রোগ্রাম আর্গুমেন্ট ক্ষণস্থায়ী আগে কোনো পালাবার ক্রম বিস্তৃতি তাই এটি ব্যাখ্যা করে \$
এড়িয়ে যাওয়ার জন্য একটি ক্রম হিসাবে এবং একক যুক্তি পাসের $
জন্য grep
যা লাইনের শেষে ম্যাচ। যেহেতু প্রতিটি লাইনের একটি শেষ আছে, তারপরে যে কোনও লাইনের মিল থাকা উচিত :)
man grep
; এটা সিদ্ধান্ত নেওয়া হয়েছে যে হয়েছে $
লাইনের শেষে ম্যাচ হোক বা না হোক লাইন দিয়ে আলাদা করা হয় নির্বিশেষে \n
, \r
উভয়, নাকি অন্যকিছু সম্পূর্ণরূপে পৃথক। সাধারণ ক্ষেত্রে, নিয়মিত এক্সপ্রেশনটি কোনও "স্ট্রিং" নয়, কোনও স্ট্রিংয়ের সাথে মেলে ব্যবহার করা যেতে পারে $
এবং স্ট্রিংয়ের শেষের সাথে মেলে ব্যবহৃত হয়।
এটি শেষ-লাইন মেটাচার্যাক্টর হিসাবে ব্যাখ্যা করা হচ্ছে। আপনি যদি সত্যিকারের ডলারের চিহ্নটি মেলাতে চান তবে করুন
$ grep \\$
অথবা
$ grep '\$'
echo \$
এবং তারপরেecho \\$