Supprimer une partie de la ligne

nounou1962 Messages postés 11 Statut Membre -  
nounou1962 Messages postés 11 Statut Membre -
bonjour tout le monde

j'ai un fichier contenant les lignes suivantes

/racine/user1/rep1/dff/ggj
/racine/user2/rep1

je veux avoir :
/racine/user1
/racine/user2

càd supprimer une partie de la ligne (à partir de de la troisième /)

j'attends votre réponse
mercii:)

3 réponses

  1. debianhunter Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   24
     
    Bonjour,

    man cut
    ;o)

    Bon, allez, je suis de bonne humeur ce soir: comme vous le notiez, il faut considerer / comme un delimiteur et garder les champs avant le troisieme /

    cat fichier | cut -d "/" -f0-3


    -d donne le delimiteur
    -f une liste de champs(field)

    Bon courage !
    0
    1. nounou1962 Messages postés 11 Statut Membre
       
      merci pour votre réponse :)
      mais qu'est ce que vous voulez dire par :

      -f une liste de champs??
      0
  2. debianhunter Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   24
     
    cut - remove sections from each line of files

    En fait, cut permet de 'decouper' une ligne autour d'un caractere de delimitation. Chaque portion encadree par ce caractere sera un champ. SI nous prenons /racine/user1/rep1/dff/ggj pour ligne et / pour caractere de delimitation, cut decoupe la ligne en
             <-- *
    racine
    user1
    rep1
    dff
    ggj
    * la il n'y a rien car on coupe autour de / et avant le premier / et bien il n'y a rien !

    Dans la page de manuel, chacune de ces portions est appelee field, champ.

    L'option -f permet de selection les champs a afficher. Nous, on veut afficher jusqu'au champ 3, donc on note
    f1-3
    pour dire que l'on veut afficher du champ 1 (rien) au champ 3 (user1). (Je me suis apercu que le 0 que j'avais mis avant est abusif ; utilisons 1 a la place)
    On aurait pu marquer "Je veux les champs de puis le debut jusqu'au champ 3"
     -f-3
    Un autre point que j'avais loupe (des fois ca fait du bien de relire le manuel ;o), c'est que l'on n'a pas besoin de faire un pipe entre cat et cut. cut accepte un fichier comme parametre. Aussi, une autre solution (meilleure !) serait:
    cut -d "/" -f-3 fichier
    0
  3. nounou1962 Messages postés 11 Statut Membre
     
    merciiiiiii infiniment pour ta réponse
    c'est très utile
    :)))
    0