ভিমে দ্বিতীয় কলামটি কীভাবে মুছবেন?


12

আমার কাছে একটি ট্যাব-বিস্মৃত ফাইল রয়েছে:

name1   verb1   name2   verb2   etc...

আমি দ্বিতীয় কলামটি মুছতে চাই। আমি এই উত্তরগুলির মধ্যে একটি সম্পাদনা করার চেষ্টা করেছি , তবে তার সাথে পরিচিত না হওয়ায় sedএবং awkপারি না।

আমাকে কি কেউ সাহায্য করতে পারবেন?


ক্যাসিয়া @ টিপি নির্দেশ করতে ওপির আসল ব্যবহৃত। T।
স্টিল্ড্রাইভার

@ স্টেলড্রাইভার ঠিক আছে আপনি ঠিক বলেছেন আমি ভেবেছিলাম এটি লাইনের অংশ। সরানো হয়েছে। তবে আমি প্রথম পোস্ট অনুসারে একটি সংশোধন করার জন্য সম্পাদনা করেছি। ধন্যবাদ
нιηসিস

1
ভিএম ভিজ্যুয়াল-ব্লক মোড সমস্যার সমাধান করে না? (সাধারণ মোডে ctrl-v, xমুছতে কলামটি নির্বাচন করুন )?
রুমানো 9

@ রুমানো এটি ধন্যবাদ সাহায্য করে, কিন্তু আপনি কি আমাকে বলতে পারবেন কীভাবে ভিজ্যুয়াল মোডে ফাইলের শেষে যেতে হবে? (আমি সিটিআরএল জি চেষ্টা করেছি, তবে এটি কার্যকর হয় না)।
চা লাইফ 13

উত্তর:


10

ভিমে, আপনার কমান্ডটি ব্যবহার করতে সক্ষম হওয়া উচিত

:%s/\t[^\t]*//

( TABশূন্য বা এরপরে TABকিছু পরিবর্তন ছাড়া অন্য কোনও চরিত্রের উপস্থিতি )। আপনি যদি একটি সামান্য সহজ ব্যবহার করতে পারে আপনার ফাইল শুধুমাত্র দুটি কলাম থাকে :%s/\t.*বা :%s/\t.*$যা প্রথম প্রতিস্থাপন TABএবং কোন লাইনের শেষে পর্যন্ত নিম্নলিখিত অক্ষর।


22

গৃহীত উত্তরটি এর চেয়ে অনেক বেশি মার্জিত (আমি এটিকে উন্নত করে দিয়েছি!) তবে আপনি যদি এটি মনে না রাখেন তবে আপনি সরাসরি vim ভিজ্যুয়াল ব্লক মোড ব্যবহার করতে পারেন । ভিমটি খুলুন এবং কলামের প্রথম কোণায় যান (সাধারণ মোড), এর মতো:

এখানে চিত্র বর্ণনা লিখুন

টাইপ CTRL-Vকরুন এবং কলামটি নির্বাচন করতে আপনি কার্সারটি সরাতে পারেন, এটি মাঝের রাস্তা:

এখানে চিত্র বর্ণনা লিখুন

শেষে যেতে, টিপুন G:

এখানে চিত্র বর্ণনা লিখুন

ব্লকটি ভাঙ্গা মনে হচ্ছে কারণ আমরা শেষ লাইনে যা ফাঁকা; kএটি আবার দেখতে কেবল একটি লাইন উপরে (উপরে তীর সহ বা ) যান ...:

এখানে চিত্র বর্ণনা লিখুন

এখন আপনি কেবল xব্লকটি মুছতে টিপুন :

এখানে চিত্র বর্ণনা লিখুন


6

আমি cutএই জন্য ব্যবহার করবে

cut -f1,3- file.txt > newfile.txt
mv newfile.txt file.txt

আপনি এটি ভিআইএম-এর মধ্যেও ফিল্টার হিসাবে ব্যবহার করতে পারেন (এটি ফাইলের সমস্ত লাইন প্রতিস্থাপন করবে; আপনি 2-9 লাইনগুলি প্রসেস করার 2,9পরিবর্তে বা উদাহরণস্বরূপ ব্যবহার করতে পারেন) %বা আপনার পছন্দসই লাইনগুলি নির্বাচন করতে পারেন V:

:%!cut -f1,3-

-f1,3-মানে 'মুদ্রণ ক্ষেত্র এক, তারপরে তিনটি ক্ষেত্র এবং সারির শেষ অবধি সমস্ত ক্ষেত্র'। ডিফল্টরূপে, cutএকটি ট্যাবকে তার সীমানা হিসাবে ব্যবহার করে; আপনার যদি অন্য কিছু প্রয়োজন হয় তবে -dবিকল্পটি ব্যবহার করুন (দেখুন man cut)।


4

আপনি চেষ্টা করতে পারেন:

:%norm WdW

অথবা ম্যানুয়ালি ভিজ্যুয়াল মোড ব্যবহার করে:

  1. দ্বিতীয় কলামে ঝাঁপুন (যেমন: টিপে W) press
  2. দ্বারা ভিজ্যুয়াল-ব্লক শুরু করুন Ctrl+v
  3. (টিপে উদাহরণ: দ্বিতীয় কলামে নির্বাচন করুন W, G)।
  4. টিপে মুছে ফেলুন d

কমান্ড লাইন থেকে এটি জায়গায় জায়গায় করতে, চেষ্টা করুন:

$ ex +':exe ":%norm f\<Tab>dE"' -scx file

সম্পর্কিত: গতির জন্য ট্যাব কীটির জন্য আক্ষরিক কীভাবে লিখবেন?

আরো দেখুন:


হ্যাঁ, +1, তবে সাবধান থাকুন যে আপনার 3 য় প্রান্তে ফাঁকা রেখা থাকলে)
উদ্বেগজনক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.