পরবর্তী লাইন একই থাকলে লাইন মুছুন


15

আমি কোন সেড / অ্যাজক কমান্ডটি ব্যবহার করতে পারি? কেবল sort -uসমস্ত দৃষ্টান্ত সরিয়ে ফেলবে

ইনপুট:

abc
abc
def
abc
abc
def

প্রত্যাশিত আউটপুট:

abc
def
abc
def

উত্তর:


36

যে কি uniqমান কমান্ড জন্য।

uniq your-file

মনে রাখবেন, কিছু uniqগনুহ মত বাস্তবায়নের uniqআপনি লাইনের একটা ক্রম প্রথম দেব যে সাজানোর একই (যেখানে strcoll()আয় 0) উল্টোদিকে হয় বাইট-টু-বাইট অভিন্ন (যেখানে memcmp()বা strcmp()আয় 0)। কোনও uniqপ্রয়োগকে নির্বিশেষে বাইট তুলনা করতে বাইটকে জোর করার জন্য , আপনি লোকালটি এর Cসাথে বাধ্য করতে পারেন :

LC_ALL=C uniq your-file

7

ভিম এটি সুন্দরভাবে অর্জন করতে পারে:

:g/\v^(.*\n)\1/d

অথবা আপনি যদি বরং কমান্ড লাইন সরঞ্জাম হিসাবে ভিএম ব্যবহার করেন তবে আপনি এটি হিসাবে এটি করতে পারেন

vim file -c "g/\v^(.*\n)\1/d" -c "wq"

এইভাবে আপনাকে পরে বাইরে বেরিয়ে আসা ভিমের সাথে কুস্তি করতে হবে না;)

ব্যাখ্যা:

:g/

এই রেজেক্সের সাথে মেলে এমন সমস্ত লাইনে ...

\v^(.*\n)\1

যে কোনও লাইন নিজেই অনুসরণ করে ...

/d

d এলিট কমান্ড চালান (বর্তমান লাইনটি মুছুন)। -c "wq"পরিবর্তন এবং প্রস্থান রক্ষা করা।


নোট করুন যে কমপক্ষে ভিএম ৮.১.২১১২ এর সাথে এটি ফাইলের শেষ দুটি লাইনের নকল করা লাইনের জন্য কাজ করে না। এছাড়াও, এটি 3 টি সদৃশ লাইনের ক্রম থেকে কেবল একটি অনুলিপি সরিয়ে দেয়।
স্টাফেন চেজেলাস

1
@ স্টাফেনচেজেলা ব্যতীত বর্তমানে আমাদের কাছে 3-লাইনের ক্ষেত্রে কাঙ্ক্ষিত আচরণের জন্য নির্দিষ্টকরণের অভাব রয়েছে — আমি উভয়ভাবেই পছন্দসই আচরণ দেখতে পেতাম।
ডি বেন নোবল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.