Duplicate mail adressen verwijderen met AWK

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Reb87
  • Registratie: Maart 2003
  • Niet online
Op dit moment ben ik bezig een adressenbestand te importeren. Helaas is dit bestand een beetje raar opgemaakt (of iemand heeft de adressen gewoon verkeerd ingevoerd), waardoor ik duplicaten krijg.

Het ziet er als volgt uit:
code:
1
"recip   1","","mail@adres.com","mail@adres.com"


Nu zou de meest ideale oplossing zijn dat er per regel slechts het mailadres komt te staan. De quote tekens en het eerste gedeelte krijg ik gemakkelijk weg met een find & replace, maar het tweede gedeelte, waarbij dus nogmaals het mailadres voorbij komt lukt niet. :'(

Via google wordt ik steeds gewezen naar AWK. Hier vind ik echter alleen voorbeelden waarbij er in verschillende regels naar duplicaten wordt gezocht, en niet binnen dezelfde regel (row).

Zou iemand hiermee kunnen helpen? :)

Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

in pseudocode:
code:
1
2
3
4
5
6
7
8
9
10
BEGIN { FS=',' }
// {
  map = []
  out = ""
  voor elke entry
    als entry niet in map
      map[entry] = entry
      out += entry
  print out
}

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • DeBolle
  • Registratie: September 2000
  • Laatst online: 16:58

DeBolle

Volgens mij ligt dat anders

Het is een comma delimited file, dus zo in te lezen in een willekeurige spreadsheet of db prog, daarna naar willekeur weer te exporteren per table maar enfin, awk dus. De testfile heet infile:
code:
1
2
3
4
5
6
7
8
9
10
[henk@centos ~]$ cat infile
"recip   1","","mail1@adres.com","mail2@adres.com"
"recip   1","","mail3@adres.com","mail4@adres.com"
"recip   1","","mail5@adres.com","mail6@adres.com"
"recip   1","","mail7@adres.com","mail8@adres.com"
[henk@centos ~]$ cat infile | awk -F , '{ print $3 }'
"mail1@adres.com"
"mail3@adres.com"
"mail5@adres.com"
"mail7@adres.com"

Specs ... maar nog twee jaar zes maanden en dan weer 130!


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 11-08 04:52

Sprite_tm

Semi-Chinees

Zonder awk maar pakt alleen het 1e adres-veld:
code:
1
cut -d '"' -f 6 < bestandje.txt

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 17:23
Sprite_tm schreef op vrijdag 10 december 2010 @ 13:46:
Zonder awk maar pakt alleen het 1e adres-veld:
code:
1
cut -d '"' -f 6 < bestandje.txt
En als je dat hebt, kun je hem gelijk door 'uniq' pipen, dan heb je geen dubbele meer. :)

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 11-08 04:52

Sprite_tm

Semi-Chinees

Jaap-Jan schreef op vrijdag 10 december 2010 @ 13:51:
[...]
En als je dat hebt, kun je hem gelijk door 'uniq' pipen, dan heb je geen dubbele meer. :)
Pipe 'm dan eerst door sort, uniq doet namelijk niet wat je lijkt te denken dat het doet :P

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • DeBolle
  • Registratie: September 2000
  • Laatst online: 16:58

DeBolle

Volgens mij ligt dat anders

Sprite_tm schreef op vrijdag 10 december 2010 @ 14:14:
[...]

Pipe 'm dan eerst door sort, uniq doet namelijk niet wat je lijkt te denken dat het doet :P
Dan wordt het sort -u
(...en plotseling ben ik weer terug in 1997, toen bedrijven als Baan hun "eigen" sort en find meeleverden bij hun pakketten zonder dat ergens te vermelden)

Specs ... maar nog twee jaar zes maanden en dan weer 130!


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Veel te moeilijke oplossingen allemaal, sort kan dit direct al (als je de gnu versie gebruikt).

sort -u -k 3 -t '","'

(al ben ik er niet zeker van of de key parameter bij 0 of 1 begint dus het zou kunnen zijn dat 3 niet correct is)

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • sparks
  • Registratie: December 2002
  • Laatst online: 16:56
Off topic:

we leveren nog steeds sort mee, find nooit gedaan ;-)
Pagina: 1