অন্যান্য কলামগুলিকে পরিবর্তন না করে একটি কলাম বাছাই করা


10

ফিল্টারিংয়ের !কৌশল সম্পর্কে আমি সম্প্রতি সচেতন ছিলাম এবং আমি এটি পছন্দ করি। দুর্ভাগ্যক্রমে, আমি এটি ভিজ্যুয়াল-ব্লক মোডে ব্যবহার করতে সক্ষম নই। আশা করি এখানকার কিছু বিশেষজ্ঞরা আমাকে সাহায্য করবেন।

মূলত, আমি নীচে তৃতীয় (কেবলমাত্র একটি এমডাব্লুই) এর মতো একটি কলাম সারণি করতে চাই। এবং আমি বাছাই করার সময় আমি অন্যান্য কলামগুলিকে বিরক্ত করতে চাই না।

আমি ইউটিলিটির !মাধ্যমে ভিজ্যুয়াল (ব্লক-মোড) নির্বাচিত তৃতীয় কলামটি ফিল্টার করার চেষ্টা করেছি sort। তবে বাছাইটি বরং নির্বাচনের বাইরে প্রসারিত হয় অর্থাৎ সমস্ত সারি অদলবদল হয়, কেবল নির্বাচন নয়, এটিও প্রথম কলামের ভিত্তিতে বাছাই করা !

1.  LARGEST         40
2.  SECOND-LARGEST  168     
3.  MID             2.8     
4.  MID             540     
5.  MID             14.84   
6.  MID             40      
7.  SECOND-LEAST    64      
8.  LEAST           8

আমি ভিজ্যুয়াল-ব্লক ব্যবহার করে শেষ কলামটি নির্বাচন করেছি এবং বলেছিলাম !sort --reverseযা প্রদর্শিত হবে

'<,'>!sort --reverse

এবং ফলাফলটি আমার প্রত্যাশার বিপরীতে strange ফলাফলটি কেবল একটি কলাম নয়, পুরো সারিগুলি সাজানো / অদলবদল করেছে এবং এটিও আমার তৃতীয়-কলাম নির্বাচন নির্বিশেষে প্রথম কলামের উপর ভিত্তি করে !

 8.  LEAST           8    
 7.  SECOND-LEAST    64      
 6.  MID             40      
 5.  MID             14.84   
 4.  MID             540     
 3.  MID             2.8     
 2.  SECOND-LARGEST  168     
 1.  LARGEST         40   

অন্যথায় অসম্ভব না হলে, আমি তুলনামূলকভাবে উন্নত সরঞ্জামগুলি sed/ এর চেয়ে বিশুদ্ধ ভিএম + সাজানোর সমাধান চাই awk। নিজেকে জানা, ভিজুয়াল-মোডের তুলনায় ভিজ্যুয়াল-ব্লক মোডটি কতটা সীমাবদ্ধ তা আরও বেশি গুরুত্বপূর্ণ।


এটি আপনার সমস্যার সমাধান করে না, তবে মনে রাখবেন যে একটি ভিআইএম অভ্যন্তরীণ sortকমান্ড উপলব্ধ রয়েছে, তাই আপনাকে !sortনিয়মিত বাছাই করার জন্য বাহ্যিক প্রার্থনা করার দরকার নেই ।
ডালকার

2
ফিল্টারগুলি কেবল লাইনে কাজ করে ।
রোমেনেল

@ ডাকার হ্যাঁ, ধন্যবাদ তবে আমি ইতিমধ্যে চেষ্টা করেছিলাম, যা একই রকম ফলাফল দিয়েছে।
সম্ভাব্যতা

@romainl এটি কি? আশার কোন রে নেই? আমি ভীমের সাথে এমন ঘটনা খুব কমই পাই! তবে তবুও, আপনি অন্য কিছু বাছাই করার পরে এবং ফিল্টারগুলি আউটপুট পর্যন্ত কোনও সমস্যার লক্ষণ প্রকাশ করার পরে "ফিল্টারগুলি কেবল লাইনে কাজ করে" বলা কি অবাক নয় ? যদি এটি কোনও সতর্কতা / ত্রুটিটি পপ না করে, আমি এমনকি তর্ক করব যে এটি একটি বিইউজি।
সম্ভাব্যতা

একটি বাগ? হা হা না. আচরণটি কেবল নথিভুক্ত করা হয়নি ( :help filter) তবে মানকও করা হয়েছে (দুঃখিত, কীভাবে পিওএসের গভীর লিঙ্ক করতে হয় তা আমি জানি না)। আরএফটিএম না করলে আপনি অভিযোগ করতে পারবেন না।
রোমেনেল

উত্তর:


9

আমি মনে করি আপনার সেরা আশা ভিজ ভিভ প্লাগইন। এই প্লাগইনটি একটি কমান্ড সরবরাহ করে Bযা একটি ব্লকে একটি কমান্ড প্রয়োগ করতে দেয়।

প্লাগইন ইনস্টল করার পরে, আপনি আপনার ব্লকটি নির্বাচন করুন এবং তারপরে ব্যবহার করুন:

:'<,'>B !sort

মনে রাখবেন যে, কমান্ড কিছু হতে পারে, তাই পরিবর্তে !sortআপনি (অন্য ফাইলে সংরক্ষণ মত ব্লকে অন্যান্য প্রক্রিয়াকরণ অনেক কাজ করতে পারে :'<,'>B w foo.txt) অথবা একটি প্রতিকল্পন আবেদন ( :'<,'>B s/foo/bar/g)


1
@ লোভসপ্রোব্যাবিলিটি, আপনি যদি তাদের প্রথম দুটি কলাম পরিবর্তন না করে তৃতীয় কলামটি বাছাই করার চেষ্টা করছেন তবে এই থ্রেড সহায়ক হতে পারে।
জায়ার লোপেজ

@ জায়েরলিপেজ কোনও অপরাধ না করে, সত্যিই মজার বিষয় যে আমার প্রশ্নটি অন্য কারও কাছে অনুলিপি করা হয়েছে, যেখানে তাকে মূল উত্সটিতে ফিরে যেতে বলা হয়েছিল (অর্থাত্ এই পৃষ্ঠার উত্তরটির পুনরায় প্রতিলিপি সহ) এবং শেষ পর্যন্ত আপনি আমাকে সেখানে একটি উত্তর খুঁজে পেতে জিজ্ঞাসা করুন।
সম্ভাব্যতা পছন্দ

আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ, আমি এটি করেছি কারণ (1) আপনার প্রশ্ন এবং এই উত্তর দুটিই আকর্ষণীয় ছিল; (২) সম্ভবত আপনি একা নন এবং এতে আগ্রহী আরও বেশি লোক থাকতে পারে; (৩) $ব্লকওয়াইজ ভিজ্যুয়াল মোডে কীভাবে ব্যবহৃত হয় তা বুঝতে কাউকে সহায়তা করার জন্য এটি দুর্দান্ত সুযোগ ।
জাইর লোপেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.