আমি যখন লিখি
$ 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 \\$