आप अपने awk कमांड को उस कॉलम में बदलें जिसे आप (आपके मामले के तीसरे कॉलम में) के आधार पर डुप्लिकेट की गई लाइनों को हटाने के लिए प्रदर्शन करना चाहते हैं:
awk '!seen[$3]++' filename
यह कमांड बता रही है कि awkकिन लाइनों को प्रिंट करना है। चर $3स्तंभ 3 की पूरी सामग्री रखता है और वर्ग कोष्ठक सरणी पहुंच है। तो, फ़ाइल नाम में लाइन के प्रत्येक तीसरे कॉलम के लिए, नाम के एरे seenका नोड बढ़ा हुआ है और यदि उस नोड (कॉलम 3) की सामग्री !पहले से सेट नहीं थी तो प्रिंट की गई लाइन ।
ऊपर awkयदि इनपुट फ़ाइल में अपने कॉलम के साथ सीमांकित कर रहे हैं आदेश काम करेंगे spaceया Tab, themself के बीच यदि कॉलम किसी और कार्य में सीमांकित, आप अपनी साथ awk को यह बताने की आवश्यकता -Fविकल्प। उदाहरण के लिए, यदि सभी कॉलम अल्पविराम ( ,) के साथ सीमांकित होते हैं और तीसरे स्तंभ के उपयोग के -F','विकल्प के आधार पर लाइनों को हटाना चाहते हैं ।
awk -F',' '!seen[$3]++' filename
-uकेवल डुप्लिकेट लाइनों को हटा देगा , डुप्लिकेट कुंजियों को नहीं ... लेकिन मैं गलत हूं।