ডিলিমিটারের আগে আমাকে একটি লাইন থেকে পাঠ্য মুছতে হবে।
উদাহরণ স্বরূপ:
(123434): hello::{apple,orange,mango}.
আমার প্রথমে পাঠ্য মুছতে হবে :
। অর্থাত (123434)
।
এই কাজটি করার জন্য লিনাক্সটিতে কোনও আদেশ রয়েছে?
ডিলিমিটারের আগে আমাকে একটি লাইন থেকে পাঠ্য মুছতে হবে।
উদাহরণ স্বরূপ:
(123434): hello::{apple,orange,mango}.
আমার প্রথমে পাঠ্য মুছতে হবে :
। অর্থাত (123434)
।
এই কাজটি করার জন্য লিনাক্সটিতে কোনও আদেশ রয়েছে?
উত্তর:
এই sed
আদেশটি কৌশলটি করা উচিত। নিম্নলিখিত কমান্ডটি ফাইলটি ওভাররাইট করবে:
sed -i 's/^[^:]*:/:/' file
শুধু আউটপুট মুদ্রণ করতে, -i
পতাকা সরান । একটি নতুন ফাইলে আউটপুট রাখার জন্য -i
পতাকাটি সরান এবং আউটপুটটিকে পুনর্নির্দেশ করুন:
sed 's/^[^:]*:/:/' file > new_file
আপনি বেশ সরল বাশ নির্দেশ দিয়ে এটি করতে পারেন :
mytext="(123434): hello::{apple,orange,mango}."
echo ${mytext#*)}
এটি মুদ্রণ করবে : hello::{apple,orange,mango}.
। আপনি একইভাবে উপসর্গ এবং প্রত্যয় কাটা করতে পারেন। অধিকন্তু, উপসর্গ এবং প্রত্যয় সংজ্ঞাগুলিতে ওয়াইল্ডকার্ড থাকতে পারে।
উপসর্গটি কাটা - প্রথম উপসর্গের ওয়াইল্ডকার্ড ম্যাচ পর্যন্ত: ${variable#prefix}
উপসর্গটি কাটা - শেষ উপসর্গটি ওয়াইল্ডকার্ড ম্যাচ পর্যন্ত: ${variable##prefix}
প্রত্যয় কাটা - প্রথম প্রত্যয় ওয়াইল্ডকার্ড ম্যাচ অবধি: ${variable%suffix}
প্রত্যয় কাটা - শেষ প্রত্যয় ওয়াইল্ডকার্ড ম্যাচ অবধি: ${variable%%suffix}
এটি প্রথম দর্শনে অস্পষ্ট হতে পারে, নিম্নলিখিত উদাহরণটি দেখুন:
mytext="xAxBxAxBx"
echo ${mytext#*A} # will print: xBxAxBx
echo ${mytext##*A} # will print: xBx
echo ${mytext%B*} # will print: xAxBxAx
echo ${mytext%%B*} # will print: xAx
echo ${mytext%%C*} # will print: xAxBxAxBx
শেষ উদাহরণে, প্যাটার্নটি মেলে না, তাই কিছুই কাটা হয় না।
echo ${mytext#*:}:
। এটি সঠিকভাবে (123)(434): hello::{apple,orange,mango}.
এবং এর মতো লাইনগুলি পরিচালনা করবে 123434: hello::{apple,orange,mango}
।
sed
বাawk