মাল্টি-লাইন পাঠ্যটি খালি দিয়ে প্রতিস্থাপন করতে সেড কমান্ড


0

আমার কাছে একটি এক্সএমএল ফাইল রয়েছে যার নীচে অংশ রয়েছে।

<Target name=something>
     < other content here>
</Target>

এখন আমি কীভাবে এই ফাইলটি আমার ফাইল থেকে সেড কমান্ড ব্যবহার করে সরাতে পারি? আমি নীচে চেষ্টা করেছি কিন্তু কাজ করিনি।

sed -ir  's/\<Target Name\=.*.\<\/Target\>//g' filename

আপনার পরামর্শ দিন.


ব্যবহৃত নিয়মিত এক্সপ্রেশনগুলির সংস্করণের উপর নির্ভর করে \<এবং এর \>বিশেষ অর্থ হতে পারে: [<]এবং [>]সমস্ত ক্ষেত্রে আক্ষরিক সাথে মিলবে। তবে একাধিক লাইনের সাথে নিদর্শনগুলি মেলে তুলতে আপনাকে আরও অনেক কিছু করতে হবে: আমি এই টিউটোরিয়ালটির প্রশংসা করছি : সহজ পাঠ নয়, তবে ব্যাখ্যা sedকখনও হতে পারে না।
এএফএইচ

উত্তর:


4
  1. এক্সএমএল স্ট্রাকচারগুলি পরিচালনা করতে আপনার এক্সএমএল সরঞ্জামগুলি ব্যবহার করা উচিত

  2. সেড বোঝানো হচ্ছে একটি লাইন বাই লাইন ভিত্তিতে স্টাফ প্রক্রিয়াজাতকরণ, আপনি সম্ভবত এই জাতীয় বিকল্পটি সমাধান করার জন্য অ্যাডকের দিকে যেতে চান।

আপনার সমস্যাটি অ্যাডকের সাথে সমাধান করতে:

awk '/<Target /,/<\/Target>/ { next } 1' your_file

সম্পাদনা:

সবেমাত্র পাওয়া গেছে: সেড একই জিনিস করতে পারে

sed '/<Target /,/<\/Target>/d' your_file

2

জন আসলে আপনার প্রশ্নের বড় অংশটির উত্তর দিয়েছেন। যাইহোক, আমি লক্ষ্য করেছি যে -iবিকল্পটি সরবরাহ করে আপনি জায়গাগুলি সম্পাদনা করতে চান sed। নোট করুন যে এই বিকল্পটি একটি alচ্ছিক আর্গুমেন্ট SUFFIX নেয়। যদি SUFFIX সরবরাহ করা হয় তবে তার নামে SUFFIX যুক্ত করে ইনপুট ফাইলের একটি ব্যাকআপ তৈরি করা হয়। আপনার কমান্ড লাইনের খুব সম্ভবত সমস্যাটি হ'ল 'র' অক্ষরটি -irপৃথক বিকল্পের পরিবর্তে ব্যাকআপ প্রত্যয় হিসাবে ব্যাখ্যা করা হয় -r। পছন্দসই প্রভাব অর্জন করার জন্য (যখন আপনি ইনস-প্লেস এডিটিং চলাকালীন ফাইলগুলি ব্যাকআপ করার অর্থ নয়) অন্যান্য বিকল্পগুলি একত্রিত করবেন না -i(বা iসর্বদা শেষ হবে কিনা তা নিশ্চিত করুন ):

# All these do the same thing (in-place editing using extended regular expressions)
sed -r -i ...
sed -i -r ...
sed -ri ...

# This one backs up input files by appending the letter 'r' to their names
# (and DOES NOT use extended regular expressions)
sed -ir ...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.