সেড ব্যবহার:
$ echo "$string" | sed -e "s/^$prefix//" -e "s/$suffix$//"
o-wor
সেড কমান্ডের মধ্যেই, ^
অক্ষরটি শুরু হওয়া পাঠ্যের সাথে মেলে $prefix
এবং $
শেষের পাঠ্যটি শেষ হয় $suffix
।
অ্যাড্রিয়ান ফ্রেহার্থে নীচের মন্তব্যে কিছু ভাল পয়েন্ট তৈরি sed
করেছে তবে এই উদ্দেশ্যে খুব কার্যকর হতে পারে। Sed উপসর্গ এবং $ প্রত্যয়ের বিষয়বস্তুগুলি সেড দ্বারা ব্যাখ্যা করা হয় তা ভাল বা খারাপ হতে পারে - যতক্ষণ আপনি মনোযোগ দিন, আপনার ঠিক হওয়া উচিত। সৌন্দর্যটি হ'ল, আপনি এরকম কিছু করতে পারেন:
$ prefix='^.*ll'
$ suffix='ld$'
$ echo "$string" | sed -e "s/^$prefix//" -e "s/$suffix$//"
o-wor
যা আপনি যা চান তা হতে পারে এবং এটি উভয় কল্পিত এবং ব্যাশ ভেরিয়েবল বিকল্পের চেয়ে শক্তিশালী। যদি আপনি মনে রাখেন যে দুর্দান্ত শক্তির সাথে মহান দায়িত্ব আসে (যেমন স্পাইডারম্যান বলেছেন), আপনার ভাল হওয়া উচিত।
সেডের সাথে একটি দ্রুত পরিচিতি পাওয়া যাবে http://evc-cit.info/cit052/sed_tutorial.html এ
শেল এবং তারের ব্যবহার সম্পর্কে একটি নোট:
প্রদত্ত বিশেষ উদাহরণের জন্য, নিম্নলিখিতগুলিও কাজ করবে:
$ echo $string | sed -e s/^$prefix// -e s/$suffix$//
... তবে কেবল কারণ:
- প্রতিধ্বনিটি তার তর্ক তালিকায় কতগুলি স্ট্রিং রয়েছে তা যত্ন করে না এবং
- $ উপসর্গ এবং $ প্রত্যয়টিতে কোনও স্থান নেই
কমান্ড লাইনের একটি স্ট্রিং উদ্ধৃত করা ভাল অভ্যাস কারণ এটিতে স্পেস থাকলেও এটি একক যুক্তি হিসাবে কমান্ডের কাছে উপস্থাপিত হবে। আমরা একই কারণে $ উপসর্গ এবং $ প্রত্যয়টি উদ্ধৃত করেছি: সিডে প্রতিটি সম্পাদনা কমান্ড একটি স্ট্রিং হিসাবে পাস করা হবে। আমরা ডাবল উদ্ধৃতি ব্যবহার করি কারণ তারা পরিবর্তনশীল অন্তরঙ্গকরণের অনুমতি দেয়; যদি আমরা সিড কমান্ডটি সিড কমান্ডটি ব্যবহার করতাম তবে এটি আক্ষরিক হয়ে উঠত $prefix
এবং $suffix
যা আমরা চাই তা নয়।
লক্ষ্য করুন, খুব, যখন ভেরিয়েবলের মান স্থাপনার একক কোট আমার ব্যবহার prefix
এবং suffix
। আমরা অবশ্যই চাই না যে স্ট্রিংগুলিতে কোনও ব্যাখ্যা দেওয়া হোক, তাই আমরা তাদের একক উদ্ধৃতি দিয়েছি যাতে কোনও প্রক্ষেপণ ঘটে না। আবার, এই উদাহরণে এটি প্রয়োজনীয় নাও হতে পারে তবে এটি প্রবেশ করা খুব ভাল অভ্যাস।