ভিআই সম্পাদক: কোনও ফাইলের একাধিক সারি মুছার দ্রুততম উপায় কী?


12

আমি কোনও ফাইলে একাধিক সারি মুছতে ভিআই সম্পাদক ব্যবহার করতে চাই। আমাকে ধারণা বা পরামর্শ দিন।

আমার লক্ষ্যটি এরকম:

আগে:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.
.
29
30
.
.

পরে;

1
10
20
30
40
.
.

3
আপনি মুছতে সারিটি কীভাবে বেছে নিলেন? আপনি কি প্রতি 10 টি করে একটি সারি ছেড়ে যেতে চান?
মাতজারি

1
:[range]dউদাহরণস্বরূপ আপনি :3,5dপাঁচটি থেকে তিনটি লাইন মুছে ফেলতে পারেন (অন্তর্ভুক্ত) lines
ব্র্যাচলে

6
রয়েছে vi.stackexchange
আলেক্সি

@ আর কেটকয়েউ - আপনি কি সংখ্যার একটি তালিকা সরিয়ে দেওয়ার চেষ্টা করছেন বা সেগুলি সারি? আপনি কি আপনার প্রশ্নটি পরিষ্কার করতে আপডেট করতে পারেন?
ডার্কহার্ট

আমি জানি আপনি gsed -n '1p; 0~10p'
ভের

উত্তর:


17

যদি আপনি বোঝাতে চান যে আপনি প্রতি 10 তম লাইন রাখতে চান এবং বাকিগুলি মুছতে চান:

%norm 9ddj

ব্যাখ্যা:

% পুরো ফাইল

norm "সাধারণ মোড" এ নিম্নলিখিত কমান্ডগুলি প্রয়োগ করুন

9dd 9 লাইন মুছুন

j এক লাইন নীচে সরান (অর্থাত্ এটি রাখুন)

দ্রষ্টব্য: এটি প্রথম সারিটি মোছা করে।

Http://www.rayninfo.co.uk/vimtips.html থেকে অভিযোজিত


অথবা গ্লোবাল কমান্ড ব্যবহার করে:

  • প্রথম লাইনের সদৃশ করুন ggYP
  • :g/^/+ d9

Https://stackoverflow.com/questions/1946738/vim-how-to-delete-every-second-row থেকে রূপান্তরিত


অথবা আপনি ব্যবহার করতে পারেন awk:

%!awk 'NR \% 10 == 0 || NR == 1'

Awk কমান্ডটি আমার পক্ষে কাজ করে। আমি সবসময় ভাবতাম যে অবারিতের জন্য সর্বনিম্ন একটি ব্লকের প্রয়োজন হয় {...}। আপনি জানেন না ভাল। এটি আমার প্রথম কাজ করার মতো প্রথম অ-ট্রিভাল অ্যাবিক কমান্ড!
the_velour_fog

1
@the_velour_fog ব্লক করা হয় প্রয়োজন। আপনি যদি একটি না লিখেন, { print $0 }
এডাব্লুকে

@RKetkaew আপনি কোন কোন বিকল্প ব্যবহার করেছেন? যদি কোনও প্রতিক্রিয়া আপনার প্রশ্নের সমাধান করে, দয়া করে এটি উত্তর হিসাবে চিহ্নিত করতে টিক ক্লিক করুন।
আন্ডারস্কোর_ড

@ মাউন্ডস_আরে হাই, আমি ডার্কহার্টের কাছ থেকে প্রস্তাবিত একটি কমান্ড ব্যবহার করেছি। আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ।
রঙ্গসীমান

12
:2,$v/0$/d

0দ্বিতীয়টি থেকে শুরু না হওয়া লাইনগুলি মুছে দেয় ।


2
এটি, এটি চতুর সমাধান। আমি শুধু একটি ব্যাখ্যা যে যোগ চাই 2,$পরিসীমা, এবং কমান্ড। রেগেক্স এবং প্রাক্তন কমান্ডটি কোথায় মিলবে না এমন সমস্ত লাইনে চালিত হবে। v/0$/dg!0$d
গ্রাচমাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.