আপনি নির্দিষ্ট না ঠিক আপনার প্রয়োজনীয়তা কি। আপনি একটি মাল্টি ধাপ প্রক্রিয়া করতে পারেন। আপনি যে স্ট্রিংটি জানেন তা আপনার ইনপুটে উপস্থিত হবে না (উদাঃ, ####
):
echo "The quick brown fox jumps over 42 lazy dogs in 2012 and 2013." \
| sed \
-e "s/[0-9]\{4\}/###/" \
-e "s/fox.*####//" \
-e "s/####//"
(কমান্ড অত্যধিক readability জন্য folded।) -e "s/[0-9]\{4\}/&####/"
উদ্বুদ্ধ ####
পরে প্রথম চার অঙ্কের সংখ্যা। (সতর্কতা: এই পরিবর্তন হবে 65536
থেকে 6553####6
।)
-e "s/fox.*####//"
ধারণকারী লাইন প্রভাবিত করে fox
এবং ####
- যেমন, লাইনগুলির মধ্যে অন্তত একটি চার-সংখ্যার নম্বর থাকে - এবং তারপর থেকে মুছে ফেলা হয় fox
মাধ্যমে প্রথম চার অঙ্কের সংখ্যা।
-e "s/####//"
, অবশ্যই, কোনও পরিষ্কার ####
স্ট্রিং যা চারটি সংখ্যার নম্বর থাকা সত্ত্বেও ছেড়ে দেওয়া হয় তবে নয় fox
।
যদি এক নম্বর নম্বরের পরে একটি স্থান সরাও,
echo "The quick brown fox jumps over 42 lazy dogs in 2012 and 2013." \
| sed \
-e "s/[0-9]\{4\}/###/" \
-e "s/fox.*#### //" \
-e "s/fox.*####//" \
-e "s/####//"
সতর্কতা: আপনি যোগ করতে পারেন g
সব থেকে s
কমান্ড, কিন্তু, এই এখনও ব্যবহার করে .*
, যা আপনার সমস্যা মূল, এটি এখনও হ্যান্ডেল করা হবে না
One fox jumps in 2012 and 2013, another fox will jump in 2014 and 2015.
সম্ভবত আপনি চান উপায়। এবং, অবশ্যই, আপনি না যোগ করতে চান g
থেকে "s/[0-9]\{4\}/&####/"
কারণ তারপর এটি ইনজেকশন হবে ####
পরে প্রতি পুরো পয়েন্ট পরাজিত, চার অঙ্ক সংখ্যা। এরপর "s/fox.*####//"
শুধু মত অভিনয় শেষ হবে "s/fox.*[0-9]\{4\}//"
(অ-অবদানকারী অক্ষরগুলি সহ আপনার মূল কমান্ডটি সরানো হয়েছে); যেমন, এটি পরিবর্তন হবে
দ্রুত বাদামী শিয়াল 2012 এবং 2013 মধ্যে জাম্প।
থেকে
২01২ #### এবং ২013 #### এ দ্রুত বাদামী শিয়াল ঝাঁপিয়ে পড়ে।
এবং তারপর
দ্রুত বাদামী।