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


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.