বিকল্প কমান্ডে বিস্ময়কর চিহ্নগুলি (!) দ্বারা স্ল্যাশ (/) প্রতিস্থাপনের অর্থ কী?


13

আমি সম্প্রতি একটি বিকল্প কমান্ড দেখেছি যেখানে লেখক এর মতো /একটি প্রতিস্থাপন করেছেন !::s!abc!ABC!g

আমি এই ব্যবহার সম্পর্কে কিছু ডকুমেন্টেশন সন্ধান করার চেষ্টা করেছি তবে প্রাসঙ্গিক কিছু খুঁজে পেলাম না। তাই আমি নিজেই পরীক্ষা-নিরীক্ষা করার চেষ্টা করেছি এবং আবারও দুটি চিহ্নের মধ্যে আসল পার্থক্যটি বের করতে পারলাম না। আমি যা পেয়েছি তা এখানে:

  • মিশ্রিত করা !এবং /কোনও আদেশে এটি সম্ভব নয় । উদাহরণস্বরূপ :s!abc/ABCব্যর্থ হয়।
  • কোনও প্যাটার্নে !পালিয়ে যাওয়া এড়াতে এটি ব্যবহার করা কার্যকর হতে পারে /। উদাহরণস্বরূপ, যদি আমি প্রতিস্থাপন করতে চান </সঙ্গে %আমি ব্যবহার করতে পারেন :%s!</!%!gপরিবর্তে :%s/<\//%/g
  • দেখে মনে হচ্ছে যে কোনও ক্ষেত্রে কিছু রেজেক্স কাজ করবে না এবং এটির সাথে /সঠিকভাবে কাজ করবে !তবে আমি সত্যিকার অর্থে একজন রেজেক্স বিশেষজ্ঞ নই বলে আমি নিশ্চিত নই।

সুতরাং আমার প্রশ্নটি সহজ: !বিকল্প কমান্ডে ব্যবহার করার সুবিধা কী এবং আমি কখন এটি ব্যবহার করার সিদ্ধান্ত নেব /?



আমার কী করা উচিত তা জানতে আমি কয়েক মিনিট আগে ভুল করে একটি ডাবল পোস্ট করেছি।
স্ট্যাটক্স

উত্তর:


22

থেকে :help :global:

এর চারপাশে থাকা '/' এর পরিবর্তে {pattern}আপনি অন্য কোনও একক বাইট অক্ষর ব্যবহার করতে পারেন তবে বর্ণানুক্রমিক অক্ষর নয় '\', '' 'বা' | 'ব্যবহার করুন যদি আপনি' / 'এর মধ্যে অন্তর্ভুক্ত করতে চান তবে এটি দরকারী অনুসন্ধানের প্যাটার্ন বা প্রতিস্থাপনের স্ট্রিং।

আপনি যেমন ইতিমধ্যে আপনার পরীক্ষা-নিরীক্ষা থেকে উদ্ভাবন করেছেন, এটি তথাকথিত " হেলানো টুথপিক সিন্ড্রোম " প্রতিরোধ করা। এই বিবেচনা:

:%s/\/home\/martin\/test/\/home\/jake\/x/

বনাম:

:%s!/home/martin/test!/home/jake/x!

দ্বিতীয় ফর্মটি অবশ্যই অনেক বেশি পাঠযোগ্য।

আপনি ডিলিমিটারটি পরিবর্তন করতে পারবেন এটিই একমাত্র কারণ; আমাদের মানুষের জন্য এটি আরও পাঠযোগ্য read কম্পিউটার পাত্তা দেয় না।

কিছু অন্যান্য প্রোগ্রাম উপায় দ্বারা আরও নমনীয় হয়, sedউদাহরণস্বরূপ, xজিএনইউতে আপনি চাইলে ডিলিমিটার হিসাবে ব্যবহার করতে পারেন । sed sxaxbxg fileহিসাবে একই sed s/a/b/g file


পাঠযোগ্যতার জন্য, আমি পছন্দ করি (এবং পরামর্শ দিই) :%s@/home/martin/test@/home/jake/x@, কারণ "ফ্যাট" @বিবৃতিটির পৃথক অংশগুলি কোথায় শুরু হয় / শেষ হয় তা দেখতে আরও সহজ করে তোলে।
দেবসোলার

@ ডেভোলার আমি :%s#/home/martin/test#/home/jake/x#আরও ভাল কাজ খুঁজে পেয়েছি , কিন্তু এটি কেবল ব্যক্তিগত মতামত।
অমিত সোনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.