স্ট্রিং সন্ধান করুন এবং vi সম্পাদনায় গণনা করুন


105

আমি একটি স্ট্রিং অনুসন্ধান করতে এবং vi ফাইলটি ব্যবহার করে কোনও ফাইলের সংখ্যার সংখ্যা খুঁজে পেতে চাই।


11
নির্বাচিত উত্তর ( :g/xxxx/d) এই পৃষ্ঠায় অন্যের কাছে ভয়ানক, বিপজ্জনক এবং নিকৃষ্টতম। দয়া করে এটি নির্বাচন করুন।
ব্রুনো ব্রোনোস্কি

1
আমি সম্মত
হই

উত্তর:


4
:g/xxxx/d

এটি প্যাটার্ন সহ সমস্ত লাইন মুছে ফেলবে এবং কতগুলি মোছা হয়েছে তা রিপোর্ট করবে। এগুলি পরে ফিরে পেতে পূর্বাবস্থায় ফিরে যান।


6
অবশ্যই, তিনি কেবল "ডি" বাদ দিতে পারেন যাতে তাকে অপারেশনে যেতে হয় না।
রুক

15
দ্রষ্টব্য এটি কেবল আপনাকে জানায় যে কতগুলি লাইন - কতগুলি উপস্থিতি নয়। আমি মনে করি ডার্ক একটি ভাল সমাধান।

4
আমার নীচের সমাধানটি একটি লাইনের মধ্যে একাধিক উপস্থিতি সঠিকভাবে গণনা করেছে এবং পূর্বাবস্থায় ফেরানোর মতো কিছুই নেই।
মোহিত চক্রবর্তী 21

6
খুব বিপজ্জনক: ও
অঙ্কিত জালানী

1
এটি গৃহীত / সর্বাধিক জনপ্রিয় উত্তর বলে মনে করা হয় না। এসও মডারেটররা কী কী? :(
ব্যবহারকারী 1412066


121

আপনার nপতাকা দরকার শব্দ গণনা করতে ব্যবহার করুন:

:%s/\i\+/&/gn   

এবং একটি নির্দিষ্ট শব্দ:

:%s/the/&/gn        

count-itemsডকুমেন্টেশন বিভাগ দেখুন ।

আপনি যদি কেবল টাইপ করেন:

%s/pattern/pattern/g

তারপরে স্ট্যাটাস লাইন আপনাকে vi এর সাথে ম্যাচের সংখ্যাও দেবে।


দেখে মনে হচ্ছে এই উত্তরটি ভিম ব্যবহারকারীদের পক্ষে এবং
ভাইয়ের

আপনার সিস্টেমে কি কেবল ভি আছে? কোন সংস্করণ?
dirkgently

কেউ আপনার কোয়েস্টনকে এতে ভিমে ট্যাগ করেছে ... আমি এটি সরিয়ে দিয়েছি।
ojblass

38

:% s / স্ট্রিং / স্ট্রিং / জি উত্তর দেবে।


এর চেয়ে উত্তম উত্তর। যদি সম্ভব হয় +5
ojblass

আমার ধারণা, এটি তখনই কার্যকর হবে যখন কোনও '। *'
একে

10
স্ট্রিংটির পুনরাবৃত্তি করার দরকার নেই, কেবলমাত্র %s/string//ng
slm

23

(গুস্তাভো যেমন বলেছিলেন তেমনই, তবে অতিরিক্ত:)

পূর্বের যে কোনও অনুসন্ধানের জন্য, আপনি সহজভাবে এটি করতে পারেন:

:%s///gn

কোনও প্যাটার্নের প্রয়োজন নেই, কারণ এটি ইতিমধ্যে অনুসন্ধান-নিবন্ধে ( @/) রয়েছে।

"%" - s/পুরো ফাইলটিতে
"জি" করুন - গ্লোবাল অনুসন্ধান করুন (এক লাইনে একাধিক হিট সহ)
"এন" - কোনও প্রতিস্থাপন প্রতিরোধ করে s/- কিছুই মুছে যায় না! কিছুতেই হবে না!
(দেখুন: :help s_flagআরও তথ্যের জন্য)

(এইভাবে, এটি ভিএম-উইকিয়া টিপ 171-তে বর্ণিত হিসাবে " দৃষ্টিভুক্ত নির্বাচিত পাঠ্যের সন্ধান করুন " - এর সাথে পুরোপুরি কাজ করে )


3

ব্যবহার

হয়েছে:% s / প্যাটার্ন / \ 0 / ছ

যখন প্যাটার্নের স্ট্রিং খুব দীর্ঘ হয় এবং আপনি এগুলি আবার টাইপ করতে পছন্দ করেন না।


1

সংক্ষিপ্ত উত্তর :

হয়েছে:% s / পংক্তি টু হতে-অনুসন্ধান // GN

শেখার জন্য :

নীচে হিসাবে ষষ্ঠ সম্পাদকে 3 টি মোড রয়েছে এখানে চিত্র বর্ণনা লিখুন

  • :আপনার কাছ থেকে ঢুকছে Commandকরার Command-lineমোড। এখন, আপনি যা লিখবেন তা :সি এল এলিতে রয়েছে (কমান্ড লাইন ইন্টারফেস)
  • %sসমস্ত লাইন নির্দিষ্ট করে। %পুরো ফাইলটিতে প্রতিস্থাপনের উপায় হিসাবে সীমা নির্দিষ্ট করা হচ্ছে। সমস্ত উপস্থিতি প্রতিস্থাপনের জন্য সিনট্যাক্স:%s/old-text/new-text/g
  • gলাইনে সমস্ত উপস্থিতি নির্দিষ্ট করে। সঙ্গে gপতাকা, আপনি পুরো লাইন প্রতিস্থাপিত করতে পারেন। যদি এই gপতাকাটি ব্যবহার না করা হয় তবে কেবলমাত্র লাইনে প্রথম উপস্থিতিটি প্রতিস্থাপন করা হবে।
  • n সংখ্যার আউটপুট সংখ্যায় নির্দিষ্ট করে
  • //ডাবল স্ল্যাশ বাদ দেওয়া প্রতিনিধিত্ব করে replacement text। কারণ আমরা সন্ধান করতে চাই।

একবার সংখ্যার সংখ্যা পেয়ে গেলে, আপনি Nএকের পর এক ঘটনা দেখতে কী টিপতে পারেন।

1 থেকে 10 রেখাটির নির্দিষ্ট পরিসরে সন্ধান এবং গণনা করার জন্য:

: 1,10s / হ্যালো // GN

  • দয়া করে মনে রাখবেন, %সম্পূর্ণ ফাইলটি ,পৃথক রেখা সংখ্যার দ্বারা পুনরায় সজ্জিত হয় ।

1 থেকে 10 রেখাটির নির্দিষ্ট পরিসরে সন্ধান এবং প্রতিস্থাপনের জন্য:

: 1,10s / কপ্টার / হ্যালো / GN


0

আমি এটি করার পরামর্শ দিচ্ছি:

  1. পারেন সমেত অনুসন্ধান *কি কার্সার অধীনে, অথবা একটি প্রমিত না জন্য একটি "বেষ্টিত অনুসন্ধান" করতে /patternঅনুসন্ধান।
  2. :%s///gnসংখ্যার সংখ্যা পেতে ব্যবহার করুন । অথবা আপনি :%s///nসংঘটনগুলির সাথে রেখার সংখ্যা পেতে ব্যবহার করতে পারেন ।

** আমি সঙ্গে সত্যিই একটি প্লাগ ইন যে, "এন এর এন মেলে এর বার্তালাপ দান করবে খুঁজে পাইনি 1 এন উপর 2 প্রতিটি অনুসন্ধানের সঙ্গে লাইন", কিন্তু হায়।

দ্রষ্টব্য: আউটপুট এর কৃপণ শব্দ দ্বারা বিভ্রান্ত করবেন না। পূর্ববর্তী কমান্ডটি আপনাকে সম্ভবত এমন কিছু দিতে পারে 4 matches on 3 linesযেখানে দ্বিতীয়টি আপনাকে দেয় 3 matches on 3 linesপ্রযুক্তিগতভাবে সঠিক হলেও , পরে বিভ্রান্তিকর এবং '3 লাইন ম্যাচ' বলা উচিত। সুতরাং, আপনি দেখতে পাচ্ছেন যে সত্যিকারের পরে ('এন' কেবল) ফর্মটি ব্যবহার করার দরকার নেই। আপনি 'জিএন' ফর্মটি ব্যবহার করে একই তথ্য আরও স্পষ্টভাবে এবং আরও কিছু পেতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.