সেড ব্যবহার করে কোনও নির্দিষ্ট শব্দের পরে আমি কীভাবে পাঠ্য প্রতিস্থাপন করতে পারি?


12

আমার একটি ফাইল আছে .ignore। প্রয়োজন প্রতিস্থাপন projdir। উদাহরণ স্বরূপ:

ignore \..*
ignore README
projdir Snake

আমার সাথে স্নাকে প্রতিস্থাপন করা দরকার, উদাহরণস্বরূপ, "প্যাকম্যান"। আমি ম্যান পৃষ্ঠাটি পড়েছি, তবে কী করব তা আমার কোনও ধারণা নেই।

উত্তর:


18

শুরু হওয়া একটি লাইন অনুসন্ধান করুন projdirএবং পুরো লাইনটিকে একটি নতুন দিয়ে প্রতিস্থাপন করুন:

sed -i 's/^projdir .*$/projdir PacMan/' .ignore

^এবং $শুরু / শেষ-অব-লাইন চিহ্নিতকারী, সুতরাং প্যাটার্নটি পুরো লাইনের সাথে মিলবে; .*কিছু মেলে। -iবলে sedপরিবর্তনগুলি সরাসরি লিখতে .ignoreশুধু তাদের outputting এর পরিবর্তে


আপনার জন্য দীর্ঘ বিকল্প ব্যবহার করেন তাহলে -i, যা --in-placeতারপর উদাহরণ আরো স্ব-দলিল হবে।
— এলিজা লিন

5

একটি পন্থাটি আপনি যে অংশগুলি রাখতে চান তার জন্য ব্যাক-রেফারেন্স ব্যবহার করে পুরো লাইনটি আবার লিখতে হবে:

sed -e 's/^\( *projdir  *\)[^ ]*\(.*\)*$/\1PacMan\2/'

আর একটি পদ্ধতি হ'ল লাইনটির সেই অংশটি আবার লিখতে হবে, তবে কেবল অন্য কিছু অংশ মেলে:

sed -e '/^ *projdir / s/ [^# ]/ PacMan/'

উভয় উদাহরণই প্রথম শব্দের রেখা যেখানে দ্বিতীয় শ্বেতস্থান-বিস্মৃত শব্দের পুনর্লিখন করে projdir।


3

যদিও এটি একটি পুরাতন পোস্ট এবং এটি আপনার কাছে গৃহীত উত্তর দ্বারা সমাধান হয়ে গেছে বলে মনে হচ্ছে, প্রকৃত প্রশ্নের উত্তর দেওয়া হয়নি। সুতরাং সম্পূর্ণতা এবং অন্যদের সাহায্য করার জন্য:

এখানে যে উত্তরটি আসলে "স্নেক" এর সাথে মেলে এবং "প্রোজডির" দিয়ে শুরু করা লাইনের জন্য নয় ...

sed -r 's/(^.*)Snake/\1PacMan' .ignore

এটি "স্নেক" + "প্যাকম্যান" এর আগে সমস্ত কিছুর সাথে "স্নেক" সহ লাইনটির শুরু থেকে সবকিছুকে প্রতিস্থাপন করে। Inside 1 এর মধ্যে যা মিলছে তার অর্থ দাঁড়ায় ()। "স্নেক" এর পরের সমস্ত কিছুই অচ্ছুত থাকে।


1
sed -i 's:^projdir.*$:projdir PacMan:g' .ignore

j প্রকল্পটি হ'ল স্ট্রিং প্রজডির দিয়ে শুরু হওয়া রেখাটি সন্ধান করা। । * $ একই লাইনে লাইনে প্রজাদিরের পরে স্ট্রিং রয়েছে। স্ট্রিং প্রোজডির প্যাকম্যান হ'ল স্ট্রিং যা দিয়ে আমরা প্রতিস্থাপন করছি। g গ্লোবাল এর জন্য - প্রজদির দিয়ে শুরু হওয়া সমস্ত লাইনের প্রতিস্থাপন করা। .ignore ফাইলের নাম


1
আপনি দয়া করে আপনার উত্তরটি প্রসারিত করতে পারেন এবং কী কী তা পরিষ্কার করতে পারেন?
— রোমিও নিনভ

কোনও আদেশ বা কোডের কোনও অংশ কীভাবে এবং কেন কাজ করে সে সম্পর্কে ব্যাখ্যাগুলি অন্তর্ভুক্ত করলে উত্তরগুলি আরও কার্যকর হয়।
— অ্যান্টনি জিওগেইগান

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