IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

AWK ou SED : Chercher doublon sur même ligne et supprimer la ligne


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut AWK ou SED : Chercher doublon sur même ligne et supprimer la ligne
    Bonjour à tous,

    Je cherche à supprimer des doublons sur même ligne dans un fichier csv.
    Je m'explique :
    Dans le fichier test.csv j'ai des lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1;toto;arthur
    2;tata;tata
    3;tata;robert
    Je voudrais à l'aide de awk (qui est fait pour cela d'aprés les nombreuses pages web que je viens de lire), rechercher l'ensemble des lignes qui contiennent un doublon et si c'est le cas, supprimer la ligne.

    La demande est aussi possible avec la commande sed

    J'ai trouvé déja la commande pour sélectionner les lignes en double :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F ";" "!seen[$2]++" test.csv
    Info trouvé ici : https://unix.stackexchange.com/quest...n-without-sort

    Et enfin pour sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %sed% -rn "/(\b\w+\b).*\b\1\b/ p" test.csv
    Info trouvé ici : https://stackoverflow.com/questions/...uplicate-words

    Par contre comment supprimer les lignes maintenant ... Là, ché pas faire. En résumé mon /d je n'arrive pas à savoir ou je dois le placer. (si d'ailleurs c'est cela que l'on doit faire)

    Merci pour votre coup de main

    Au plaisir de vous lire

    Tof

  2. #2
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Les doublons c'est les lignes où les champs 2 et 3 sont identiques ?
    Si c'est ça, il te suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F';' '$2 != $3' fichier

  3. #3
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Merci pour ton aide,

    Par contre mon fichier a plusieurs lignes (50 environ)
    Et je ne n'arrive pas, malgré ta commande, supprimer le deuxième et troisième champs, si et uniquement si, ils sont les mêmes.


    Etant sous windows (pas le choix malheureusement...) voici ta commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F';' '$2 != $3' test.csv
    Comment faire du coup, non pas pour sélectionner puisque déja maitrisé, mais supprimer mes doublons. Sed serait pas la solution ?

    Merci pour votre aide.

    Tof

  4. #4
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    La commande que je t'ai donnée supprime les lignes dont les deuxième et troisième champs sont identiques.
    Avec l'exemple que tu as donné en introduction, voici ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ awk -F';' '$2 != $3' test.csv
    1;toto;arthur
    3;tata;robert
    $
    Si ça n'est pas ce que tu demandes, alors j'ai mal compris.
    Si c'est ce que tu veux mais que ça ne marche pas sous windows, alors je ne sais pas.

  5. #5
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    RE,

    Effectivement, sous windows, je suis obligé de remplacer les ' par les "

    Toutefois avec cette version :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F';' "$2 != $3" test.csv
    J'ai aucune erreur et dans mon fichier, rien n'a été effectué sur le fichier

    Et si j'ajoute mes guillemets autour du ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F";" "$2 != $3" test.csv
    j'ai à l'écran l'affichage de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1;toto;arthur
    3;tata;robert

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Bonjour

    Etant sous windows (pas le choix malheureusement...)
    On a toujours le choix d'installer cygwin.

    J'ai aucune erreur et dans mon fichier, rien n'a été effectué sur le fichier
    La différence entre ' ' et " ", c'est que les " " laissent la place à l'interprétation. En l'occurrence, j'ai bien dans l'idée que $2 et $3 sont interprétés comme les paramètres positionnels de ton script bash, et non comme les champs de ta ligne dans awk.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    . En l'occurrence, j'ai bien dans l'idée que $2 et $3 sont interprétés comme les paramètres positionnels de ton script bash, et non comme les champs de ta ligne dans awk.
    Je pense qu'il y a une mauvaise interprétation effectivement. Surtout quand j'integre ma commande dans mon fichier .bat, la commande n'est meme plus reconnu.


    En fait en résumé, pour mieux expliquer, j'ai une liste de noms DNS de serveur avec la correspondance IP. Le tout dans un csv.
    Toutefois, il y a pleins de ligne qui ont dans le champ 2 et champ 3 le nom DNS (2 fois donc)

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    champ1;champ2,champ3
    1;google.com;8.8.8.8
    2;google.com;google.com
    3;home.com;192.9.3.1
    As-tu une idée ?

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Pour un Linuxien, la réponse de Balkany est excellente.
    Il faut chercher ton bonheur dans l'adaptation à Windows. Et là, sans cygwin, je ne peux pas t'aider. Le sous-forum batch est plus indiqué, n'est-ce pas ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Bonsoir,

    ALors j'ai déja mis à jour awk, installer aussi gawk et mis la derniere version de sed

    J'ai beau chercher, je ne trouve pas la solution.

    Alors exactement, j'ai un fichier nommé nslookup_results.csv

    Extrait de son contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ;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 constater que j'ai des lignes avec des DNS en doublons sur la meme ligne. Et c'est cela que je que je veux supprimer.

    Voici les lignes de commandes testés fonctionnelles qui m'affiche à l'écran le bon résultat. Mais uniquement là... Je n'ai aucun action de suppression sur mon fichier nslookup_results.csv

    Pour AWK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    %awk% -F ";" "{ if (a[$1]++ == 0) print $0; }" nslookup_results.csv
    %awk% -F ";" "a !~ $1; {a=$1}" nslookup_results.csv
    %awk% -F ";" "!_[$1]++" nslookup_results.csv
    %awk% -F ";" "!seen[$2]++" nslookup_results.csv
    %awk% -F ";" "!a[$1]++" nslookup_results.csv
    Pour GAWK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    %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
    %gawk% -F ";" "!a[$1]++" nslookup_results.csv
    Pour SED
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %sed% -rn "/(\b\w+\b).*\b\1\b/ p" nslookup_results.csv
    Malheureusement, je suis contraint de faire un script sous Windows. Et je vous rejoins que la solution la plus simple est bien linux...

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 399
    Points
    19 399
    Par défaut
    il serait utile que tu donnes la sortie attendue correspondant au fichier donné en exemple dans ton dernier message.
    ce serait plus clair.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Oups, désolé

    Alors le fichier original :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ;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
    Et l'attente à la sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ;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
    Les doublons comme ceci doivent étre supprimé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    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

  12. #12
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut


    Si ton fichier est conforme à ce que tu as posté, c'est normal. J'ai le même résultat que toi. Car tu as des espaces à la fin des lignes.

    Soit tu les supprimes à la main, soit tu utilises cette commande sed : (attention, l'option -i veut dire "inplace" et change le fichier directement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 's/ *$//' nslookup_results.csv
    Puis tu fais ton script awk :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    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
    Si ton fournisseur est un script, il faut le modifier pour qu'il arrête de mettre des espaces à la fin des lignes. Car le délimiteur est ";" et on ne touche plus aux espaces.

    [edit]
    D'ailleurs, autre idée, la fin de ligne avec Windows est \r\n (CRLF) alors que avec Linux \n (LF). Il faudrait vérifier, le cas échéant, que sed ou awk ne prennent pas \r pour un caractère du dernier champ de la ligne.
    [/edit]
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  13. #13
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Déja un trés grand merci à toi ! Un vrai coup de pousse !

    Alors déjà, pour commencer, voici mon script pour créer mon fichier nslookup_results.csv Pour rappel, suis sous WIndows.
    Dans le fichier nslookup_input.txt j'ai mes DNS listé pour obtenir les adresses IP correspondantes. J'ai vérifié, il n'y a pas d'éspace à la fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    @echo off
    cls
    setlocal enabledelayedexpansion enableextensions
    set me=%~n0
    set parent=%~dp0
    set outputfile=%parent%nslookup_results.csv
    set inputfile=%parent%nslookup_input.txt
    set fichier_final=%parent%fichier_final.csv
     
    rem on ajoute une premiere ligne avec les titres
    @echo #;NOM DNS;ADRESSE IP >> %outputfile%
     
    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 >> %outputfile%
    )
     
     
    echo extraction des doublons noms de domaine
    echo creation du fichier doublousDNS
    rem creation du fichier doublousDNS.csv
    %sed% -rn "/(\b\w+\b).*\b\1\b/ p" %outputfile% > %doublonsDNS%
    echo fichier doublonsDNS.csv cree
    echo.
     
    echo Supression des espaces à la fin des lignes du fichier nslookup_results.csv
    %sed% -i "s/ *$//" %outputfile%
     
    echo suppression des doublons dans %outputfile%
    pause
    %awk% -F';' "$2!=$3" %outputfile%
    echo fait
    pause
    J'ai testé dans une fenêtre CMD ta commande pour la suppression des espaces. Cela fonctionne bien et merci encore d'avoir trouvé cette erreur.

    Par contre pour la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F';' "$2!=$3" nslookup_results.csv
    Çà ne marche pas. Pour rappel suis sous WIndows. Du coup, ta commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F';' '$2!=$3' nslookup_results.csv
    et devenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F';' "$2!=$3" nslookup_results.csv
    Et au final, c'est toujours pareil (testé pas en script mais dans une fenetre CMD)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #;NOM DNS;ADRESSE IP
    1;play.google.com;play.google.com
    1;play.google.com;172.217.18.206
    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
    6;ggpht.com;ggpht.com
    7;dl.google.com;dl.google.com
    7;dl.google.com;172.217.22.142
    8;dl-ssl.google.com;dl-ssl.l.google.com
    8;dl-ssl.google.com;64.233.184.93
    8;dl-ssl.google.com;64.233.184.136
    8;dl-ssl.google.com;64.233.184.190
    8;dl-ssl.google.com;64.233.184.91
    8;dl-ssl.google.com;dl-ssl.google.com
    9;android.clients.google.com;android.l.google.com
    9;android.clients.google.com;142.250.74.238
    9;android.clients.google.com;216.58.213.142
    9;android.clients.google.com;216.58.213.174
    9;android.clients.google.com;216.58.204.142
    9;android.clients.google.com;172.217.19.238
    9;android.clients.google.com;172.217.22.142
    9;android.clients.google.com;216.58.215.46
    9;android.clients.google.com;216.58.213.78
    9;android.clients.google.com;216.58.198.206
    9;android.clients.google.com;216.58.204.110
    9;android.clients.google.com;216.58.209.238
    9;android.clients.google.com;216.58.201.238
    9;android.clients.google.com;216.58.206.238
    9;android.clients.google.com;172.217.18.206
    9;android.clients.google.com;216.58.214.78
    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
    11;ns2.google.com;216.239.34.10
    12;ns3.google.com;ns3.google.com
    12;ns3.google.com;216.239.36.10
    13;ns4.google.com;ns4.google.com
    13;ns4.google.com;216.239.38.10
    14;ns-cloud-c1.googledomains.com;ns-cloud-c1.googledomains.com
    14;ns-cloud-c1.googledomains.com;216.239.32.108
    15;ns-cloud-c2.googledomains.com;ns-cloud-c2.googledomains.com
    15;ns-cloud-c2.googledomains.com;216.239.34.108
    16;ns-cloud-c3.googledomains.com;ns-cloud-c3.googledomains.com
    16;ns-cloud-c3.googledomains.com;216.239.36.108
    17;ns-cloud-c4.googledomains.com;ns-cloud-c4.googledomains.com
    17;ns-cloud-c4.googledomains.com;216.239.38.108
    J'ai mis un max d'info pour que tu puisses connaitre ce que j'ai effectué.

    Tof

  14. #14
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F ";" "/\r$/{t++;} END{print \"Il y a\",int(t),\"retours chariot, en fin de ligne, dans ce fichier de\",NR,\"lignes.\";}" nslookup_results.csv
    Et dis-nous le résultat.

    Conseil: Tu devrais ajouter un point virgule après ton dernier champ.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  15. #15
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Voici le retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c:\SCRIPT>%awk% -F ";" "/\r$/{t++;} END{print \"Il y a\",t,\"retours chariot, en fin de ligne, dans ce fichier de\",NR,\"lignes.\";}" nslookup_results.csv
    Il y a  retours chariot, en fin de ligne, dans ce fichier de 52 lignes.
    Pour l'ajout du ; je fais comment ?

    Mon niveau n'est pas trés top...

  16. #16
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Wow, déjà.

    Et le point-virgule après %%J ? Cela règle-t-il le problème ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  17. #17
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    RE,

    Effectivement pas encore couché...

    Voici ce que ça donne au niveau du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    #;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;
    6;ggpht.com;ggpht.com;
    7;dl.google.com;dl.google.com;
    7;dl.google.com;172.217.22.142;
    8;dl-ssl.google.com;dl-ssl.l.google.com;
    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;
    8;dl-ssl.google.com;dl-ssl.google.com;
    9;android.clients.google.com;android.l.google.com;
    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;
    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;
    11;ns2.google.com;216.239.34.10;
    12;ns3.google.com;ns3.google.com;
    12;ns3.google.com;216.239.36.10;
    13;ns4.google.com;ns4.google.com;
    13;ns4.google.com;216.239.38.10;
    14;ns-cloud-c1.googledomains.com;ns-cloud-c1.googledomains.com;
    14;ns-cloud-c1.googledomains.com;216.239.32.108;
    15;ns-cloud-c2.googledomains.com;ns-cloud-c2.googledomains.com;
    15;ns-cloud-c2.googledomains.com;216.239.34.108;
    16;ns-cloud-c3.googledomains.com;ns-cloud-c3.googledomains.com;
    16;ns-cloud-c3.googledomains.com;216.239.36.108;
    17;ns-cloud-c4.googledomains.com;ns-cloud-c4.googledomains.com;
    17;ns-cloud-c4.googledomains.com;216.239.38.108;
    Mais toujours pareil (en fenetre CMD) ça marche toujours pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F';' "$2!=$3" nslookup_results.csv
    Testé auss avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F';' "$2 != $3" nslookup_results.csv

  18. #18
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 249
    Points : 13 472
    Points
    13 472
    Par défaut
    Allez, une dernière idée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %awk% -F ";" "\$2 != \$3" nslookup_results.csv
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  19. #19
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Arfff,

    J'ai une erreur avec les backslash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c:\SCRIPT>%awk% -F ";" "\$2 != \$3" nslookup_results.csv
    awk: \$2 != \$3
    awk: ^ backslash not last character on line
    Je vais chercher mais si quelqu'un peu tester aussi c'est avec plaisir d'avoir votre retour.

    Tof

  20. #20
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Résolu !!!

    Allez super merci !!! J'ai trouvé la solution avec ton aide !!!
    Je passe par sed et ça fonctionne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %sed% -r "/(;[^;]*)\1/d" < %outputfile_Apple_temp% > %outputfile_Apple%
    Merci encore et longue vie au site !!!

    Tof

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2020, 22h54
  2. [XL-2010] Macro sommes cellules en doublons sur même ligne.
    Par Part30 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 28/01/2019, 16h12
  3. Expression régulière sur même ligne
    Par knebhi dans le forum Langage
    Réponses: 1
    Dernier message: 20/03/2009, 17h49
  4. combobox 2 selections consécutives sur même ligne impossible
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 04/11/2007, 14h46
  5. supprimer doublons sur 40000 lignes
    Par eillon dans le forum Excel
    Réponses: 28
    Dernier message: 25/10/2007, 13h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo