সেড: বাক্যটির বাক্য পুনরুক্ত না করে 1 শব্দ প্রতিস্থাপন করুন


1

আমার নিম্নলিখিত প্যাটার্ন রয়েছে:

foo bar

fooসর্বদা একই থাকার সাথে তবে barপরিবর্তন হতে পারে। আমার কাছে একটি হ্যাশ টেবিল রয়েছে যা প্রতিটি মানের জন্য barএকটি নতুন আছে। আমি এখন যা করি তা হ'ল:

sed -i 's/foo bar/foo new_value/g' file

আমি পুরোপুরি নিশ্চিত fooযে প্রতিস্থাপনের স্ট্রিংয়ের পুনরাবৃত্তি এড়ানোর একটি উপায় আছে । না sedভালো কিছু প্রদান? মত

sed -i 's/foo @@bar@@/new_value/g' file

@@string@@ প্রতিস্থাপন করতে হবে যে মান হচ্ছে।

উত্তর:


0

sed -i 's/\(foo \)bar/\1new_value/g' file

\( \)ক্রম টেক্সট যা পরে যেমন প্রতিস্থাপন স্ট্রিং স্থাপন করা যেতে পারে "ধারন করে" \1। এটি একাধিকবার করা যেতে পারে, \1অঙ্কটি নির্দেশ করে যে কোন পাঠ্যটি ব্যবহার করতে হবে indicates ক্যাপচার করা পাঠ্য ক্রম অনুসারে গণনা করা হয় \(


উত্তরটি সঠিক হিসাবে চিহ্নিত করুন যদি এটি আপনার জন্য কাজ করে :-)
রবিবার

আমি যত তাড়াতাড়ি পারব (10 মিনিটের বিলম্ব) will
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.