Forum Linux.débutant filtrer les lignes d'un fichier texte

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-2
28
jan.
2016

Bonjour, aujourd'hui j'ai récupérer un fichier txt correspondant a ma requête ldapsearch effectué. J'aimerai que vous m'éclairiez sur quelques points :

Mon but est d'afficher dans un autre fichier txt seulement userPrincipalName : [Son_contenue] et son LastLogonTimestamp: [Son_contenue]…Pour chaque compte que j'ai dans se fichier.

Auriez-vous des idées de comment faire…?

Pour ma part je voulais faire un script ligne par ligne qui réécrit la ligne a partir d'une condition… mais le seul problème est que je n'ai que quelques notion en vbs et que mon Centos ne comprend pas le vbs …. :(

Merci de votre futur aide.

  • # Bonjour

    Posté par  . Évalué à 3. Dernière modification le 28 janvier 2016 à 20:07.

    grep -E "^userPrincipalName|^lastLogonTimestamp" ldap.txt

    N’affichera que les lignes du fichier ldap.txt qui commencent par 'userPrincipalName' ou 'lastLogonTimestamp'

    Pour rediriger la sortie de cette commande dans le fichier résultat.txt :

    grep -E "^userPrincipalName|^lastLogonTimestamp" ldap.txt > résultat.txt

    Comme dit lolop plus bas, c’est pas très malin de balancer des données privées comme ça sur le Web…

    Pour pinailler maintenant, on écrit CentOS, pas Centos :)

  • # Ben… change de langage

    Posté par  (site web personnel) . Évalué à 2.

    je n'ai que quelques notion en vbs et que mon Centos ne comprend pas le vbs …. :(

    Prend un langage de script standard - perso je suis Python, mais pour du traitement de texte comme ça Perl est tout désigné - et apprends le (si tu n'as que quelques notions de vbs, tu n'es pas encore trop déformé). Accessoirement, Perl ou Python ou Ruby ou… tournent sous Linux, Windows, MacOS & Co.

    Pour le fichier, autant recopier une entrée dans ton post plutôt que renvoyer vers un site (que uBlock origin me signale comme bof) et obliger à cliquer tout ça.

    # extended LDIF
    #
    # LDAPv3
    # base <OU=Gentilly - Nancy,OU=Utilisateurs,DC=intra,DC=stjacques> with scope subtree
    # filter: (&(objectCategory=person)(objectClass=user))
    # requesting: lastLogonTimestamp UserPrincipalName 
    #
    
    # SWEEPUPD, Informatique, Gentilly - Nancy, Utilisateurs, intra.stjacques
    dn: CN=SWEEPUPD,OU=Informatique,OU=Gentilly - Nancy,OU=Utilisateurs,DC=intra,D
     C=stjacques
    userPrincipalName: SWEEPUPD@intra.stjacques
    lastLogonTimestamp: 129461379377156250
    
    # Backup, Informatique, Gentilly - Nancy, Utilisateurs, intra.stjacques
    dn: CN=Backup,OU=Informatique,OU=Gentilly - Nancy,OU=Utilisateurs,DC=intra,DC=
     stjacques
    

    (t'as pas mis des données réelles en ligne?)

    Note: tu feras gaffe que certains userPrincipal ne sont pas renseignés: @intra.stjacques sans rien avant le @.

    Sinon, boucle de lecture, dn: te donne un identifiant, les deux lignes suivantes les infos que tu cherches… suffit de les récupérer et les écrire dans ton fichier cible.

    Ça ressemble beaucoup à un exercice.

    Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

  • # avec ldapsearch directement ?

    Posté par  . Évalué à 2.

    ldapsearch tes parametres habituels binddn, basesearch, etc userPrincipalName LastLogonTimestamp

    de rien

  • # Merci

    Posté par  . Évalué à 1.

    Merci a tout le monde de votre réponse qui sont pertinente, je vais essayé d'utiliser grep je vous retiens au courant du résultat :D et les donnés sont juste des donnés de test :D

    • [^] # Re: Merci

      Posté par  . Évalué à 1.

      Après test avec grep j'ai obtenu le résultat que j'attendais, merci a tout le monde d'avoir passer du temps sur mon problème. :D

      Et pour les langages de script, en cour on a fait principalement du vbs sur windows, actuelement je suis en stage et je découvre Linux :D

      • [^] # Re: Merci

        Posté par  . Évalué à 2.

        Sous Linux un des langages que tu ne pourras ignorer c’est le « shell » (typiquement Bash sous GNU/Linux) car c’est comme qui dirait l’équivalent du « langage batch » (cmd.exe) ou du Powershell sous Windows.

        Ensuite comme langage un peu plus structuré Python est en effet un bon choix.

        Tu te rendra compte très vite que le VBS sous Linux (ou n’importe quel OS de type UNIX) ça ne se pratique tout simplement pas…

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.