একটি ফাইলের স্ক্রিপ্টের সম্পাদনার জন্য POSIX সরঞ্জাম (বরং মান আউট রুপান্তরিত করা বিষয়বস্তু প্রিন্টিং বেশী) হল ex।
printf '%s\n' 'g/^[^C]*C[^C]*$/d' x | ex file.txt
আপনার শেডের সংস্করণ যদি এটি সমর্থন করে তবে আপনি এটি ব্যবহারsed -i করতে পারেন, আপনি সচেতন হন যে এটি পোর্টেবল নয় যদি আপনি কোনও স্ক্রিপ্ট লিখে থাকেন যা বিভিন্ন ধরণের সিস্টেমে চালানোর উদ্দেশ্যে।
ডেভিড ফোস্টার মন্তব্য মন্তব্য জিজ্ঞাসা:
আপনি ব্যবহার করছেন printfএবং না করছেন এর echoমতো কোনও কারণ আছে কি ex -c COMMAND?
উত্তর: হ্যাঁ
জন্য printfবনাম echoএটা বহনযোগ্যতা একটি প্রশ্ন; দেখতে কেন প্রতিধ্বনি চেয়ে printf, উত্তম? এবং কমান্ডগুলি ব্যবহার করে নতুন লাইনগুলি ছেদ করা আরও সহজ printf।
জন্য printf ... | exবনাম ex -c ..., এটা ত্রুটি পরিচালনা একটি প্রশ্ন। এই নির্দিষ্ট কমান্ডের জন্য এটি কোনও ব্যাপার নয়, তবে সাধারণভাবে এটি করে; উদাহরণস্বরূপ, রাখার চেষ্টা করুন
ex -c '%s/this pattern is not in the file/replacement text/g | x' filename
একটি স্ক্রিপ্টে। নিম্নলিখিতগুলির সাথে বিপরীতে:
printf '%s\n' '%s/no matching lines/replacement/g' x | ex file
প্রথমটি ঝুলবে এবং ইনপুটটির জন্য অপেক্ষা করবে; exকমান্ডটি ইওএফ প্রাপ্ত হলে দ্বিতীয়টি প্রস্থান করবে , সুতরাং স্ক্রিপ্টটি চালিয়ে যাবে। বিকল্প workarounds যেমন s///e, তবে তারা POSIX দ্বারা নির্দিষ্ট করা হয় না। আমি পোর্টেবল ফর্মটি ব্যবহার করতে পছন্দ করি যা উপরে দেখানো হয়েছে।
gকমান্ডের জন্য অবশ্যই শেষে একটি নতুন লাইন থাকা উচিত এবং আমি printfএকক উদ্ধৃতিতে একটি নতুন লাইন এম্বেড করার পরিবর্তে কমান্ডগুলি মোড়ানো ব্যবহার করতে পছন্দ করি ।
awkফিল্ড বিভাজকের চটজলদি ব্যবহার !