Sed Supprimer la ligne si le champ est dupliqué

Signaler
-
 Tofdu31 -
Bonjour,
Je cherche à supprimer des lignes si et uniquement si sur cette meme ligne il y a le champ 2 et le champ 3 dupliqué.

Je m'explique avec cet exemple :
;NOM DNS;ADRESSE IP 
1;play.google.com;play.google.com
1;play.google.com;142.250.74.238
2;android.com;android.com
2;android.com;142.250.74.228
3;googleanalytics.com;googleanalytics.com
3;googleanalytics.com;216.58.198.196
4;googleusercontent.com;googleusercontent.com
5;gstatic.com;gstatic.com
5;gstatic.com;172.217.19.227



On peut voir sur ce fichier nslookup_results.csv que j'ai des lignes avec le nom DNS qui se répète. Je veux donc supprimer ces lignes.

J'ai testé avec les éléments suivants :

%sed% -rn "/(\b\w+\b).*\b\1\b/ p" nslookup_results.csv

Je sais que le /d permet de supprimer mais je sais pas ou le mettre. D'autant plus que cette commande est dans un .bat

Autre exemple :

%gawk% -F ";" "{ if (a[$1]++ == 0) print $0; }" nslookup_results.csv
%gawk% -F ";" "a !~ $1; {a=$1}" nslookup_results.csv
%gawk% -F ";" "!_[$1]++" nslookup_results.csv
%gawk% -F ";" "!seen[$2]++" nslookup_results.csv


Mais à part m'afficher à l'écran qu'il trouve les doublons, impossible de faire supprimer les lignes dans mon fichier.

Si quelqu’un peut me venir en aide.

Merci

Tof
Configuration: Windows / Chrome 86.0.4240.198

8 réponses

Messages postés
35922
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
2 décembre 2020
5 698
Salut,
Mais à part m'afficher à l'écran qu'il trouve les doublons,
Normal puisque tu le lui demandes explicitement avec les options "-n" et "p" qui vont de pair et n'affichent que ce qu'on leur demande ;-\

$ cat f1
;NOM DNS;ADRESSE IP
1;play.google.com;play.google.com
1;play.google.com;142.250.74.238
2;android.com;android.com
2;android.com;142.250.74.228
3;googleanalytics.com;googleanalytics.com
3;googleanalytics.com;216.58.198.196
4;googleusercontent.com;googleusercontent.com
5;gstatic.com;gstatic.com
5;gstatic.com;172.217.19.227


$ sed -r '/(\b\w+\b).*\b\1\b/d' f1 
;NOM DNS;ADRESSE IP
1;play.google.com;142.250.74.238
2;android.com;142.250.74.228
3;googleanalytics.com;216.58.198.196
5;gstatic.com;172.217.19.227



Bonjour,

Merci à toi,

Par contre avec ta ligne de commande (adapté à Windows) ça fonctionne et m'affiche à l'écran le résultat. Je n'ai malheureusement aucune modification.

Voici la commande :
%sed% -r "/(\b\w+\b).*\b\1\b/d" nslookup_results.csv


Et le résultat à l'écran :
c:\SCRIPT>%sed% -r "/(\b\w+\b).*\b\1\b/d" nslookup_results.csv
#;NOM DNS;ADRESSE IP
1;play.google.com;142.250.74.238;
2;android.com;142.250.74.228;
3;googleanalytics.com;216.58.198.196;
5;gstatic.com;172.217.19.227;
7;dl.google.com;172.217.22.142;
8;dl-ssl.google.com;64.233.184.93;
8;dl-ssl.google.com;64.233.184.190;
8;dl-ssl.google.com;64.233.184.136;
8;dl-ssl.google.com;64.233.184.91;
9;android.clients.google.com;216.58.213.142;
9;android.clients.google.com;142.250.74.238;
9;android.clients.google.com;216.58.214.78;
9;android.clients.google.com;172.217.18.206;
9;android.clients.google.com;216.58.206.238;
9;android.clients.google.com;216.58.201.238;
9;android.clients.google.com;216.58.209.238;
9;android.clients.google.com;216.58.204.110;
9;android.clients.google.com;216.58.198.206;
9;android.clients.google.com;216.58.213.78;
9;android.clients.google.com;216.58.215.46;
9;android.clients.google.com;172.217.22.142;
9;android.clients.google.com;172.217.19.238;
9;android.clients.google.com;216.58.204.142;
9;android.clients.google.com;216.58.213.174;
11;ns2.google.com;216.239.34.10;
12;ns3.google.com;216.239.36.10;
13;ns4.google.com;216.239.38.10;
14;ns-cloud-c1.googledomains.com;216.239.32.108;
15;ns-cloud-c2.googledomains.com;216.239.34.108;
16;ns-cloud-c3.googledomains.com;216.239.36.108;
17;ns-cloud-c4.googledomains.com;216.239.38.108;


Du coup, ce que j'ai fait, c'est renvoyer l'info sur un nouveau fichier est c bon. Si tu as une solution pour taper direct sur le fichier suis preneur. Mais je pense que cette erreur vient du fait que j'ai scripté le tout sous Windows (obligation malheureusement)

Merci beaucoup pour ton soutien.

Christophe
Messages postés
35922
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
2 décembre 2020
5 698
Normalement sous GNU/Linux, la commande "sed" intègre l'option "-i" ou "--in-place" qui permet de modifier directement le fichier original. Tu peux même faire une sauvegarde de l'original en stipulant une extension "-i.BAK" par exemple.

Maintenant reste à savoir si la version Windows l'incorpore…
Messages postés
18240
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 novembre 2020
5 112
hello
$ awk -F ";" '$2 != $3' nslookup_results.csv
;NOM DNS;ADRESSE IP
1;play.google.com;142.250.74.238
2;android.com;142.250.74.228
3;googleanalytics.com;216.58.198.196
5;gstatic.com;172.217.19.227
RE, au final, je me suis rendu compte qu'il me supprimé une ligne !
Celle-ci uniquement en plus :
10;ns1.google.com;216.239.32.10

D'ailleurs sur le résultat du dessus, on voir quelle n'est plus là.

J'ai testé avec cette commande qui affiche les doubons, et là aussi, on voit apparaitre dans les résultat la ligne :
10;ns1.google.com;216.239.32.10


Resultat avec la commande :
%sed% -rn "/(\b\w+\b).*\b\1\b/ p" nslookup_temp_results_20-11-2020.csv


1;play.google.com;play.google.com
2;android.com;android.com
3;googleanalytics.com;googleanalytics.com
4;googleusercontent.com;googleusercontent.com
5;gstatic.com;gstatic.com
6;ggpht.com;ggpht.com
7;dl.google.com;dl.google.com
8;dl-ssl.google.com;dl-ssl.l.google.com
8;dl-ssl.google.com;dl-ssl.google.com
9;android.clients.google.com;android.l.google.com
9;android.clients.google.com;android.clients.google.com
10;ns1.google.com;ns1.google.com
10;ns1.google.com;216.239.32.10
11;ns2.google.com;ns2.google.com
12;ns3.google.com;ns3.google.com
13;ns4.google.com;ns4.google.com
14;ns-cloud-c1.googledomains.com;ns-cloud-c1.googledomains.com
15;ns-cloud-c2.googledomains.com;ns-cloud-c2.googledomains.com
16;ns-cloud-c3.googledomains.com;ns-cloud-c3.googledomains.com
17;ns-cloud-c4.googledomains.com;ns-cloud-c4.googledomains.com


Dans mon script, voici la commande que j'utilise pour récuperer les adresses IP. Je me demande si c'est pas le chiffre 10 qui gène. Au pire, faudrait enlever les chiffres.
rem Obtention adresse IP des noms DNS
echo Obtention adresse IP des noms DNS
echo.

FOR /F %%G in (%inputfile%) do (
set /a resultcount+=1
FOR /F "skip=3 tokens=2 delims=: " %%J in ('echo(^|nslookup %%G') do @echo !resultcount!;%%G;%%J>> %outputfiletemp%
)
Messages postés
35922
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
2 décembre 2020
5 698
Re-

C'est normal, la syntaxe employée est un peu trop large dans son interprétation, et dans ton cas, la regex matche le "10" du début de ligne et comme il le retrouve à la fin, il supprime la ligne.

Cette syntax devrait mieux faire le job :
sed -r '/(;[^;]*)\1/d'
Super !!!

Un grand merci , ça fonctionne !
%sed% -r "/(;[^;]*)\1/d" nslookup_results.csv
Ooups trop vite parlé...
Là je viens d'essayer sur des domaines Apple, et dans les resultats, c'est pas top.
Des noms de domaines champs 1 et champ 2 présent et non supprimé.
Des correspondances noms de domaines et adresses IP présents.

Le but étant de me supprimer les lignes qui ont le champ 1 et champ 2 identiques.

Voici le résultat avec la commande ci-dessus :
NOM DNS;ADRESSE IP
ax.itunes.apple.com;a1108.gi3.akamai.net
ax.itunes.apple.com;95.100.202.123
ax.itunes.apple.com;95.100.202.147
ax.itunes.apple.com;ax.itunes.apple.com
ax.itunes.apple.com;ax.itunes.apple.com.edgesuite.net
ocsp.apple.com;ocsp.g.aaplimg.com
ocsp.apple.com;17.253.113.202
ocsp.apple.com;17.253.109.201
ocsp.apple.com;ocsp.apple.com
ocsp.apple.com;ocsp-lb.apple.com.akadns.net
phobos.apple.com;phobos.itunes-apple.com.akadns.net
phobos.apple.com;17.154.66.38
phobos.apple.com;phobos.apple.com
vpp.itunes.apple.com;vpp.itunes-apple.com.akadns.net
vpp.itunes.apple.com;17.154.66.7
vpp.itunes.apple.com;vpp.itunes.apple.com
mdmenrollment.apple.com;mdm.fe.apple-dns.net
mdmenrollment.apple.com;17.248.177.138
mdmenrollment.apple.com;17.248.176.135
mdmenrollment.apple.com;17.248.176.136
mdmenrollment.apple.com;17.248.177.78
mdmenrollment.apple.com;17.248.177.204
mdmenrollment.apple.com;17.248.176.142
mdmenrollment.apple.com;17.248.176.39
mdmenrollment.apple.com;17.248.177.76
mdmenrollment.apple.com;mdmenrollment.apple.com
mdmenrollment.apple.com;mdmenrollment.apple.com.akadns.net
iprofiles.apple.com;iprofiles-st.apple.com.akadns.net
iprofiles.apple.com;17.164.1.33
iprofiles.apple.com;iprofiles.apple.com
iprofiles.apple.com;iprofiles.apple.com.akadns.net
identity.apple.com;identity.apple.com.akadns.net
identity.apple.com;17.146.1.146
identity.apple.com;identity.apple.com
deviceservices-external.apple.com;deviceservices-external.gcsis-apple.com.akadns.net
deviceservices-external.apple.com;17.122.193.87
deviceservices-external.apple.com;deviceservices-external.apple.com
deviceenrollment.apple.com;st11p01su-deviceenrollment.apple.com.akadns.net
deviceenrollment.apple.com;17.164.1.5
deviceenrollment.apple.com;deviceenrollment.apple.com
deviceenrollment.apple.com;deviceenrollment.apple.com.akadns.net
gdmf.apple.com;gdmf.apple.com.akadns.net
gdmf.apple.com;17.171.47.23
gdmf.apple.com;gdmf.apple.com
push.apple.com;push.apple.com
courier.push.apple.com;courier.push.apple.com
a12-64.akam.net;a12-64.akam.net
a12-64.akam.net;184.26.160.64
a13-64.akam.net;a13-64.akam.net
a13-64.akam.net;2600
a13-64.akam.net;2.22.230.64
a18-64.akam.net;a18-64.akam.net
a18-64.akam.net;95.101.36.64
a24-64.akam.net;a24-64.akam.net
a24-64.akam.net;2.16.130.64
a28-64.akam.net;a28-64.akam.net
a28-64.akam.net;95.100.173.64
a5-64.akam.net;a5-64.akam.net
a5-64.akam.net;2600
a5-64.akam.net;95.100.168.64
a6-64.akam.net;a6-64.akam.net
a6-64.akam.net;2600
a6-64.akam.net;23.211.133.64
adns3.akam.net;adns3.akam.net
adns3.akam.net;184.26.161.67
ns1-2.akam.net;ns1-2.akam.net
ns1-2.akam.net;2600
ns1-2.akam.net;193.108.91.2
ns4-65.akam.net;ns4-65.akam.net
ns4-65.akam.net;84.53.139.65
ns5-65.akam.net;ns5-65.akam.net
ns5-65.akam.net;184.85.248.65
ns7-65.akam.net;ns7-65.akam.net
ns7-65.akam.net;96.7.49.65
usw6.akam.net;usw6.akam.net
usw6.akam.net;23.61.199.64
ns1-1.akamaitech.net;ns1-1.akamaitech.net
ns1-1.akamaitech.net;193.108.88.1
ns2-193.akamaitech.net;ns2-193.akamaitech.net
ns2-193.akamaitech.net;2.22.230.193
ns3-193.akamaitech.net;ns3-193.akamaitech.net
ns3-193.akamaitech.net;2600
ns3-193.akamaitech.net;23.61.199.193
ns4-193.akamaitech.net;ns4-193.akamaitech.net
ns4-193.akamaitech.net;2600
ns4-193.akamaitech.net;84.53.139.193
ns5-193.akamaitech.net;ns5-193.akamaitech.net
ns5-193.akamaitech.net;184.85.248.193
ns6-193.akamaitech.net;ns6-193.akamaitech.net
ns6-193.akamaitech.net;95.100.168.193
ns7-193.akamaitech.net;ns7-193.akamaitech.net
ns7-193.akamaitech.net;96.7.49.193
zc.akamaitech.net;zc.akamaitech.net
zc.akamaitech.net;23.74.25.192
zd.akamaitech.net;zd.akamaitech.net
zd.akamaitech.net;95.101.36.192
ze.akamaitech.net;ze.akamaitech.net
ze.akamaitech.net;184.26.161.192
zg.akamaitech.net;zg.akamaitech.net
zg.akamaitech.net;96.7.50.192
zh.akamaitech.net;zh.akamaitech.net
zh.akamaitech.net;23.211.133.192
zi.akamaitech.net;zi.akamaitech.net
zi.akamaitech.net;184.26.161.192
a.ns.apple.com;a.ns.apple.com
a.ns.apple.com;2620
a.ns.apple.com;17.253.200.1
b.ns.apple.com;b.ns.apple.com
b.ns.apple.com;2620
b.ns.apple.com;17.253.207.1
c.ns.apple.com;c.ns.apple.com
c.ns.apple.com;2620
c.ns.apple.com;204.19.119.1
d.ns.apple.com;d.ns.apple.com
d.ns.apple.com;2620
d.ns.apple.com;204.26.57.1
a1-128.akadns.net;a1-128.akadns.net
a1-128.akadns.net;193.108.88.128
a11-129.akadns.net;a11-129.akadns.net
a11-129.akadns.net;84.53.139.129
a12-131.akagtm.org;a12-131.akagtm.org
a12-131.akagtm.org;184.26.160.131
a13-130.akagtm.org;a13-130.akagtm.org
a13-130.akagtm.org;2.22.230.130
a18-128.akagtm.org;a18-128.akagtm.org
a18-128.akagtm.org;95.101.36.128
a28-129.akagtm.org;a28-129.akagtm.org
a28-129.akagtm.org;95.100.173.129
a3-129.akadns.net;a3-129.akadns.net
a3-129.akadns.net;2600
a3-129.akadns.net;96.7.49.129
a5-130.akagtm.org;a5-130.akagtm.org
a5-130.akagtm.org;95.100.168.130
a7-131.akadns.net;a7-131.akadns.net
a7-131.akadns.net;2600
a7-131.akadns.net;23.61.199.131
a9-128.akadns.net;a9-128.akadns.net
a9-128.akadns.net;184.85.248.128
a.ns.apple.com;a.ns.apple.com
a.ns.apple.com;2620
a.ns.apple.com;17.253.200.1
b.ns.apple.com;b.ns.apple.com
b.ns.apple.com;2620
b.ns.apple.com;17.253.207.1
c.ns.apple.com;c.ns.apple.com
c.ns.apple.com;2620
c.ns.apple.com;204.19.119.1
d.ns.apple.com;d.ns.apple.com
d.ns.apple.com;2620
d.ns.apple.com;204.26.57.1


Par contre si je mets un champ 0 (on va dire) avec un ; la selection se fait mieux. Je mets en place de suite dans mon script cela et vous tiens au courant
Bon en fait, je me rends comptes que c'est compliqué de faire du trie,

Au pire, pourrait-on au final avoir une commande sed pour extraire chaque ligne qui a un DNS et une adresse IP ?
ça serait plus simple peut-étre.

Alors coté Apple, voici le fichier d'origine à traité :
#;NOM DNS;ADRESSE IP
52;ax.itunes.apple.com;a1108.gi3.akamai.net
52;ax.itunes.apple.com;95.100.202.123
52;ax.itunes.apple.com;95.100.202.147
52;ax.itunes.apple.com;ax.itunes.apple.com
52;ax.itunes.apple.com;ax.itunes.apple.com.edgesuite.net
53;ocsp.apple.com;ocsp.g.aaplimg.com
53;ocsp.apple.com;17.253.113.202
53;ocsp.apple.com;ocsp.apple.com
53;ocsp.apple.com;ocsp-lb.apple.com.akadns.net
54;phobos.apple.com;phobos.itunes-apple.com.akadns.net
54;phobos.apple.com;17.154.66.38
54;phobos.apple.com;phobos.apple.com
55;vpp.itunes.apple.com;vpp.itunes-apple.com.akadns.net
55;vpp.itunes.apple.com;17.154.66.7
55;vpp.itunes.apple.com;vpp.itunes.apple.com
56;mdmenrollment.apple.com;mdm.fe.apple-dns.net
56;mdmenrollment.apple.com;17.248.176.104
56;mdmenrollment.apple.com;17.248.176.75
56;mdmenrollment.apple.com;17.248.177.139
56;mdmenrollment.apple.com;17.248.177.196
56;mdmenrollment.apple.com;17.248.177.140
56;mdmenrollment.apple.com;17.248.177.164
56;mdmenrollment.apple.com;17.248.177.108
56;mdmenrollment.apple.com;17.248.179.9
56;mdmenrollment.apple.com;mdmenrollment.apple.com
56;mdmenrollment.apple.com;mdmenrollment.apple.com.akadns.net
57;iprofiles.apple.com;iprofiles-st.apple.com.akadns.net
57;iprofiles.apple.com;17.164.1.33
57;iprofiles.apple.com;iprofiles.apple.com
57;iprofiles.apple.com;iprofiles.apple.com.akadns.net
58;identity.apple.com;identity.apple.com.akadns.net
58;identity.apple.com;17.146.1.146
58;identity.apple.com;identity.apple.com
59;deviceservices-external.apple.com;deviceservices-external.gcsis-apple.com.akadns.net
59;deviceservices-external.apple.com;17.122.193.87
59;deviceservices-external.apple.com;deviceservices-external.apple.com
60;deviceenrollment.apple.com;st11p01su-deviceenrollment.apple.com.akadns.net
60;deviceenrollment.apple.com;17.164.1.5
60;deviceenrollment.apple.com;deviceenrollment.apple.com
60;deviceenrollment.apple.com;deviceenrollment.apple.com.akadns.net
61;gdmf.apple.com;gdmf.apple.com.akadns.net
61;gdmf.apple.com;17.171.47.23
61;gdmf.apple.com;gdmf.apple.com
62;push.apple.com;push.apple.com
63;courier.push.apple.com;courier.push.apple.com
64;a12-64.akam.net;a12-64.akam.net
64;a12-64.akam.net;184.26.160.64
65;a13-64.akam.net;a13-64.akam.net
65;a13-64.akam.net;2600
65;a13-64.akam.net;2.22.230.64
66;a18-64.akam.net;a18-64.akam.net
66;a18-64.akam.net;95.101.36.64
67;a24-64.akam.net;a24-64.akam.net
67;a24-64.akam.net;2.16.130.64
68;a28-64.akam.net;a28-64.akam.net
68;a28-64.akam.net;95.100.173.64
69;a5-64.akam.net;a5-64.akam.net
69;a5-64.akam.net;2600
69;a5-64.akam.net;95.100.168.64
70;a6-64.akam.net;a6-64.akam.net
70;a6-64.akam.net;2600
70;a6-64.akam.net;23.211.133.64
71;adns3.akam.net;adns3.akam.net
71;adns3.akam.net;184.26.161.67
72;ns1-2.akam.net;ns1-2.akam.net
72;ns1-2.akam.net;2600
72;ns1-2.akam.net;193.108.91.2
73;ns4-65.akam.net;ns4-65.akam.net
73;ns4-65.akam.net;84.53.139.65
74;ns5-65.akam.net;ns5-65.akam.net
74;ns5-65.akam.net;184.85.248.65
75;ns7-65.akam.net;ns7-65.akam.net
75;ns7-65.akam.net;96.7.49.65
76;usw6.akam.net;usw6.akam.net
76;usw6.akam.net;23.61.199.64
77;ns1-1.akamaitech.net;ns1-1.akamaitech.net
77;ns1-1.akamaitech.net;193.108.88.1
78;ns2-193.akamaitech.net;ns2-193.akamaitech.net
78;ns2-193.akamaitech.net;2.22.230.193
79;ns3-193.akamaitech.net;ns3-193.akamaitech.net
79;ns3-193.akamaitech.net;2600
79;ns3-193.akamaitech.net;23.61.199.193
80;ns4-193.akamaitech.net;ns4-193.akamaitech.net
80;ns4-193.akamaitech.net;2600
80;ns4-193.akamaitech.net;84.53.139.193
81;ns5-193.akamaitech.net;ns5-193.akamaitech.net
81;ns5-193.akamaitech.net;184.85.248.193
82;ns6-193.akamaitech.net;ns6-193.akamaitech.net
82;ns6-193.akamaitech.net;95.100.168.193
83;ns7-193.akamaitech.net;ns7-193.akamaitech.net
83;ns7-193.akamaitech.net;96.7.49.193
84;zc.akamaitech.net;zc.akamaitech.net
84;zc.akamaitech.net;23.74.25.192
85;zd.akamaitech.net;zd.akamaitech.net
85;zd.akamaitech.net;95.101.36.192
86;ze.akamaitech.net;ze.akamaitech.net
86;ze.akamaitech.net;184.26.161.192
87;zg.akamaitech.net;zg.akamaitech.net
87;zg.akamaitech.net;96.7.50.192
88;zh.akamaitech.net;zh.akamaitech.net
88;zh.akamaitech.net;23.211.133.192
89;zi.akamaitech.net;zi.akamaitech.net
89;zi.akamaitech.net;184.26.161.192
90;a.ns.apple.com;a.ns.apple.com
90;a.ns.apple.com;2620
90;a.ns.apple.com;17.253.200.1
91;b.ns.apple.com;b.ns.apple.com
91;b.ns.apple.com;2620
91;b.ns.apple.com;17.253.207.1
92;c.ns.apple.com;c.ns.apple.com
92;c.ns.apple.com;2620
92;c.ns.apple.com;204.19.119.1
93;d.ns.apple.com;d.ns.apple.com
93;d.ns.apple.com;2620
93;d.ns.apple.com;204.26.57.1
94;a1-128.akadns.net;a1-128.akadns.net
94;a1-128.akadns.net;193.108.88.128
95;a11-129.akadns.net;a11-129.akadns.net
95;a11-129.akadns.net;84.53.139.129
96;a12-131.akagtm.org;a12-131.akagtm.org
96;a12-131.akagtm.org;184.26.160.131
97;a13-130.akagtm.org;a13-130.akagtm.org
97;a13-130.akagtm.org;2.22.230.130
98;a18-128.akagtm.org;a18-128.akagtm.org
98;a18-128.akagtm.org;95.101.36.128
99;a28-129.akagtm.org;a28-129.akagtm.org
99;a28-129.akagtm.org;95.100.173.129
100;a3-129.akadns.net;a3-129.akadns.net
100;a3-129.akadns.net;2600
100;a3-129.akadns.net;96.7.49.129
101;a5-130.akagtm.org;a5-130.akagtm.org
101;a5-130.akagtm.org;95.100.168.130
102;a7-131.akadns.net;a7-131.akadns.net
102;a7-131.akadns.net;2600
102;a7-131.akadns.net;23.61.199.131
103;a9-128.akadns.net;a9-128.akadns.net
103;a9-128.akadns.net;184.85.248.128
104;a.ns.apple.com;a.ns.apple.com
104;a.ns.apple.com;2620
104;a.ns.apple.com;17.253.200.1
105;b.ns.apple.com;b.ns.apple.com
105;b.ns.apple.com;2620
105;b.ns.apple.com;17.253.207.1
106;c.ns.apple.com;c.ns.apple.com
106;c.ns.apple.com;2620
106;c.ns.apple.com;204.19.119.1
107;d.ns.apple.com;d.ns.apple.com
107;d.ns.apple.com;2620
107;d.ns.apple.com;204.26.57.1


Par contre avec la ligne de commande, j'ai pas toutes les adresses IP envoyé dans mon nouveau fichier :
%sed% -r "/(\b\w+\b).*\b\1\b/d" Apple_temp.csv > Apple.csv


Et si j'utilise cette ligne de commande pour affichier l'ensemble des doublons. Là j'ai effectivement les doublons mais aussi quelques des lignes ayant une adresse IP.... Incroyable...
Ligne de commande :
%sed% -rn "/(\b\w+\b).*\b\1\b/ p" Apple_temp.csv > doublons_Apple.csv


Voici le resultat :
52;ax.itunes.apple.com;ax.itunes.apple.com
52;ax.itunes.apple.com;ax.itunes.apple.com.edgesuite.net
53;ocsp.apple.com;ocsp.g.aaplimg.com
53;ocsp.apple.com;ocsp.apple.com
53;ocsp.apple.com;ocsp-lb.apple.com.akadns.net
54;phobos.apple.com;phobos.itunes-apple.com.akadns.net
54;phobos.apple.com;phobos.apple.com
55;vpp.itunes.apple.com;vpp.itunes-apple.com.akadns.net
55;vpp.itunes.apple.com;vpp.itunes.apple.com
56;mdmenrollment.apple.com;mdm.fe.apple-dns.net
56;mdmenrollment.apple.com;mdmenrollment.apple.com
56;mdmenrollment.apple.com;mdmenrollment.apple.com.akadns.net
57;iprofiles.apple.com;iprofiles-st.apple.com.akadns.net
57;iprofiles.apple.com;iprofiles.apple.com
57;iprofiles.apple.com;iprofiles.apple.com.akadns.net
58;identity.apple.com;identity.apple.com.akadns.net
58;identity.apple.com;17.146.1.146
58;identity.apple.com;identity.apple.com
59;deviceservices-external.apple.com;deviceservices-external.gcsis-apple.com.akadns.net
59;deviceservices-external.apple.com;deviceservices-external.apple.com
60;deviceenrollment.apple.com;st11p01su-deviceenrollment.apple.com.akadns.net
60;deviceenrollment.apple.com;deviceenrollment.apple.com
60;deviceenrollment.apple.com;deviceenrollment.apple.com.akadns.net
61;gdmf.apple.com;gdmf.apple.com.akadns.net
61;gdmf.apple.com;gdmf.apple.com
62;push.apple.com;push.apple.com
63;courier.push.apple.com;courier.push.apple.com
64;a12-64.akam.net;a12-64.akam.net
64;a12-64.akam.net;184.26.160.64
65;a13-64.akam.net;a13-64.akam.net
65;a13-64.akam.net;2.22.230.64
66;a18-64.akam.net;a18-64.akam.net
66;a18-64.akam.net;95.101.36.64
67;a24-64.akam.net;a24-64.akam.net
67;a24-64.akam.net;2.16.130.64
68;a28-64.akam.net;a28-64.akam.net
68;a28-64.akam.net;95.100.173.64
69;a5-64.akam.net;a5-64.akam.net
69;a5-64.akam.net;95.100.168.64
70;a6-64.akam.net;a6-64.akam.net
70;a6-64.akam.net;23.211.133.64
71;adns3.akam.net;adns3.akam.net
72;ns1-2.akam.net;ns1-2.akam.net
72;ns1-2.akam.net;193.108.91.2
73;ns4-65.akam.net;ns4-65.akam.net
73;ns4-65.akam.net;84.53.139.65
74;ns5-65.akam.net;ns5-65.akam.net
74;ns5-65.akam.net;184.85.248.65
75;ns7-65.akam.net;ns7-65.akam.net
75;ns7-65.akam.net;96.7.49.65
76;usw6.akam.net;usw6.akam.net
77;ns1-1.akamaitech.net;ns1-1.akamaitech.net
77;ns1-1.akamaitech.net;193.108.88.1
78;ns2-193.akamaitech.net;ns2-193.akamaitech.net
78;ns2-193.akamaitech.net;2.22.230.193
79;ns3-193.akamaitech.net;ns3-193.akamaitech.net
79;ns3-193.akamaitech.net;23.61.199.193
80;ns4-193.akamaitech.net;ns4-193.akamaitech.net
80;ns4-193.akamaitech.net;84.53.139.193
81;ns5-193.akamaitech.net;ns5-193.akamaitech.net
81;ns5-193.akamaitech.net;184.85.248.193
82;ns6-193.akamaitech.net;ns6-193.akamaitech.net
82;ns6-193.akamaitech.net;95.100.168.193
83;ns7-193.akamaitech.net;ns7-193.akamaitech.net
83;ns7-193.akamaitech.net;96.7.49.193
84;zc.akamaitech.net;zc.akamaitech.net
85;zd.akamaitech.net;zd.akamaitech.net
86;ze.akamaitech.net;ze.akamaitech.net
87;zg.akamaitech.net;zg.akamaitech.net
88;zh.akamaitech.net;zh.akamaitech.net
89;zi.akamaitech.net;zi.akamaitech.net
90;a.ns.apple.com;a.ns.apple.com
91;b.ns.apple.com;b.ns.apple.com
92;c.ns.apple.com;c.ns.apple.com
93;d.ns.apple.com;d.ns.apple.com
94;a1-128.akadns.net;a1-128.akadns.net
94;a1-128.akadns.net;193.108.88.128
95;a11-129.akadns.net;a11-129.akadns.net
95;a11-129.akadns.net;84.53.139.129
96;a12-131.akagtm.org;a12-131.akagtm.org
96;a12-131.akagtm.org;184.26.160.131
97;a13-130.akagtm.org;a13-130.akagtm.org
97;a13-130.akagtm.org;2.22.230.130
98;a18-128.akagtm.org;a18-128.akagtm.org
98;a18-128.akagtm.org;95.101.36.128
99;a28-129.akagtm.org;a28-129.akagtm.org
99;a28-129.akagtm.org;95.100.173.129
100;a3-129.akadns.net;a3-129.akadns.net
100;a3-129.akadns.net;96.7.49.129
101;a5-130.akagtm.org;a5-130.akagtm.org
101;a5-130.akagtm.org;95.100.168.130
102;a7-131.akadns.net;a7-131.akadns.net
102;a7-131.akadns.net;23.61.199.131
103;a9-128.akadns.net;a9-128.akadns.net
103;a9-128.akadns.net;184.85.248.128
104;a.ns.apple.com;a.ns.apple.com
105;b.ns.apple.com;b.ns.apple.com
106;c.ns.apple.com;c.ns.apple.com
107;d.ns.apple.com;d.ns.apple.com
Allez enfin c bon,
Il faut rediriger l'entrée standard, pour que ce ne soit pas awk qui lise tes noms de fichier windowsiens
%sed% -r "/(;[^;]*)\1/d" < %outputfile_Apple_temp% > %outputfile_Apple%