উত্তরে আমার পূর্ববর্তী মন্তব্যটি প্রসারিত করা।
sed -i -e "\|$PrevDay.*$|d" $DataFile2
ব্যাখ্যা: আপনি এমন একটি ফাংশন ব্যবহার করছেন যা প্রতিটি লাইনের পাঠ্যকে প্রতিস্থাপিত করে। আপনি |
চরিত্রটিকে ডিলিমিটার হিসাবে বেছে নিয়েছেন, প্রথম এবং দ্বিতীয় ডিলিমিটারের মধ্যে অপসারণের জন্য এক্সপ্রেশনটি লিখেছিলেন এবং দ্বিতীয় এবং তৃতীয় ডিলিমিটারের মধ্যে সন্নিবেশ করানোর জন্য এক্সপ্রেশনটি লিখেছিলেন। সুতরাং, লাইনটি সম্পাদনা করা হলেও মুছে ফেলা হয়নি।
আপনি যদি লাইনটি মুছতে চান তবে আপনার আলাদা সিনট্যাক্স ব্যবহার করা উচিত:
\|
|
ডিফল্ট পরিবর্তে ডিলিমিটার হিসাবে সংজ্ঞায়িত করে/
$PrevDay.*$
অনুসন্ধান করার প্যাটার্নটি হল, $PrevDay
আপনার কাছ থেকে বাশ স্ক্রিপ্টের কোনও পরিবর্তনশীল
|
অনুসন্ধান প্যাটার্নের শেষ চিহ্নিত করে
d
মানে প্যাটার্নের সাথে মিল পাওয়া লাইনটি মুছতে হবে
দেখুন এই Stackoverflow অনুরূপ প্রশ্ন।
ইউএনআইএক্স-এর মতো ওয়াল্ডে যেমন সাধারণ, একই ফলাফলটি বিভিন্ন উপায়ে অর্জিত হতে পারে, যেমন ব্যবহার করে awk
; নিম্নলিখিত অভিব্যক্তিটির অর্থ: "যদি নিদর্শনগুলি মিলে না যায় তবে পুরো লাইনটি মুদ্রণ করুন"।
awk -i '!/$PrevDay.*$/ {print $0}' $DataFile2