2017-06-29 2 views
1

Ich habe eine Datei mit fester Länge mit Primärschlüssel von 1-8. Es gibt kein Trennzeichen. Ich möchte Dubletten eliminieren, indem ich das zweite Auftreten eliminiere. Suchen Sie nach Lösungen in Unix.Entfernen Sie doppelte Zeile basierend auf Spalte für Datei mit fester Länge

Datei sieht wie folgt aus:

A00991CCAGXCD K 9999PHLX CANADIAN DOLLAR  F 
G0084W10%AEURN 4612EURONAV NV ANTWERPEN  F 
D1819089%ADB 6021DEUTSCHE BANK AG   F 
G0084W10GAADNT 6799ADIENT PLC     F 
D1F19089NADB 6021DEUTSCHE BANK AG   F 

Ausgang extected ist:

A00991CCAGXCD K 9999PHLX CANADIAN DOLLAR  F 
G0084W10%AEURN 4612EURONAV NV ANTWERPEN  F 
D1819089%ADB 6021DEUTSCHE BANK AG   F 
D1F19089NADB 6021DEUTSCHE BANK AG   F 
+0

ITYM feste Breite, nicht feste Länge. –

Antwort

2

Short awk Lösung:

awk '!a[substr($1,1,8)]++' file 

Der Ausgang:

A00991CCAGXCD K 9999PHLX CANADIAN DOLLAR F 
G0084W10%AEURN 4612EURONAV NV ANTWERPEN F 
D1819089%ADB 6021DEUTSCHE BANK AG F 
D1F19089NADB 6021DEUTSCHE BANK AG F 

  • substr($1,1,8) - kehrt 8 Zeichen lang String aus dem 1. Feld $1 (ausgehend von der 1. char)

  • !a[...]++ - nur das erste Auftreten von eindeutigen Feldindex Berücksichtigung

+0

Danke, diese Lösung hat geholfen und es ist sehr einfach. –

Verwandte Themen