Supprimer une partie de la ligne

Fermé
nounou1962 Messages postés 11 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 avril 2010 - 12 avril 2010 à 17:28
nounou1962 Messages postés 11 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 avril 2010 - 13 avril 2010 à 11:36
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:)






A voir également:

3 réponses

debianhunter Messages postés 119 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 11 juillet 2010 24
12 avril 2010 à 18:00
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
nounou1962 Messages postés 11 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 avril 2010
Modifié par nounou1962 le 12/04/2010 à 18:28
merci pour votre réponse :)
mais qu'est ce que vous voulez dire par :

-f une liste de champs??
0
debianhunter Messages postés 119 Date d'inscription mardi 22 décembre 2009 Statut Membre Dernière intervention 11 juillet 2010 24
12 avril 2010 à 21:01
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
nounou1962 Messages postés 11 Date d'inscription vendredi 9 avril 2010 Statut Membre Dernière intervention 16 avril 2010
13 avril 2010 à 11:36
merciiiiiii infiniment pour ta réponse
c'est très utile
:)))
0