সম্ভাব্য অবাঞ্ছিত ইনপুটগুলির সাথে কাজ করার সময় আমি পুরো কাজটি চালানোর আগে ভিজ্যুয়াল পরিদর্শনের জন্য লাইন দ্বারা 'বানান' দেখেছি (বিশেষত যখন এটি মানুষের মেলবক্সের সাফ করার মতো ধ্বংসাত্মক কিছু)।
আমি যা করি তা হ'ল প্যারামিটারগুলির একটি তালিকা উত্পন্ন করা হয় (অর্থাত্ ব্যবহারকারীর নাম), এটিকে একটি-রেকর্ড-প্রতি-লাইন ফ্যাশনে কোনও ফিডে ফিড করুন:
johndoe
jamessmith
janebrown
তারপরে আমি তালিকাটি খুলি vim
, এবং এটি অনুসন্ধানের সাথে জাগ্রত করি এবং এক্সপ্রেশনগুলি প্রতিস্থাপন করি যতক্ষণ না আমি পূর্ণ কমান্ডগুলির একটি তালিকা না পাই যার জন্য মৃত্যুদন্ড কার্যকর করা দরকার, যেমন:
/bin/rm -fr /home/johndoe
/bin/rm -fr /home/jamessmith
এইভাবে যদি আপনার রেজেক্স অসম্পূর্ণ হয় তবে আপনি দেখতে পাবেন কোন আদেশে সম্ভাব্য সমস্যা রয়েছে (যেমন। /bin/rm -fr johnnyo connor
)। এইভাবে আপনি আপনার রেজেক্সটি পূর্বাবস্থায় ফিরিয়ে নিতে পারেন এবং এর আরও নির্ভরযোগ্য সংস্করণ দিয়ে আবার চেষ্টা করে দেখতে পারেন। নাম ম্যাংলিং এর জন্য কুখ্যাত, কারণ ভ্যান গগ, ও'কনর্স, সেন্ট ক্লেয়ার, স্মিথ-ওয়েসনের মতো সমস্ত প্রান্তের কেস যত্ন নেওয়া শক্ত।
এটি করার set hlsearch
জন্য দরকারী vim
কারণ এটি সমস্ত ম্যাচ হাইলাইট করবে, সুতরাং এটি যদি এটি মেলে না বা অনিচ্ছাকৃত উপায়ে ম্যাচ না করে তবে আপনি সহজেই স্পট করতে পারেন।
একবার আপনার রেজেক্স নিখুঁত হয়ে যায় এবং এটি যে সমস্ত ক্ষেত্রে আপনি যাচাই / ভাবার জন্য পরীক্ষা করতে পারেন তা ধরে ফেললে আমি সাধারণত এটিকে একটি সেড এক্সপ্রেশনে রূপান্তর করি যাতে এটি অন্য রানের জন্য সম্পূর্ণ স্বয়ংক্রিয়ভাবে তৈরি হয়।
যেসব ক্ষেত্রে ইনপুটটির রেখার সংখ্যা আপনাকে ভিজ্যুয়াল ইন্সপেকশন করতে বাধা দেয়, আমি আদেশটি কার্যকর করার আগে পর্দায় (বা আরও ভাল, এখনও একটি লগ) প্রতিধ্বনিত করার পরামর্শ দিচ্ছি, সুতরাং যদি এটির ত্রুটি থেকে যায় তবে আপনি জানেন ঠিক কোন আদেশটি ঘটেছে এটা ব্যর্থ। তারপরে আপনি নিজের আসল পুনর্নির্দেশগুলিতে ফিরে যেতে পারেন এবং আরও একবার সামঞ্জস্য করতে পারেন।
printf "foo bar\nbaz bat" | xargs echo whee
ফলন হবেwhee foo bar baz bat
। হতে পারে বিকল্প-L
বা-n
বিকল্পগুলি?