Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/10/2008, à 15:40

bltz

Qqs commandes bash

Bonjour, je suis nouveau en Programmation et j'ai qqs petit soucis avec la commande grep...

J'ai un projet en bash a rendre donc je pense que je vais revenir poser souvent des questions dans ce topic roll

j'ai un fichier tout bete du style

French/:
drwxrwx--- 1 root plugdev 4,0K 2008-10-26 21:56 Power Saver
drwxrwx--- 1 root plugdev    0 2008-10-26 21:56 Power Saver Driver
-rwxrwx--- 1 root plugdev    0 2008-10-26 21:56 maison
-rwxrwx--- 1 root plugdev    0 2008-10-26 21:56 nawak
-rwxrwx--- 1 root plugdev 1,7K 2008-10-26 21:56 test

French/Power Saver:
drwxrwx--- 1 root plugdev    0 2008-10-26 21:56 nawaktoo
-rwxrwx--- 1 root plugdev 2,2M 2008-10-26 21:56 data1.cab
-rwxrwx--- 1 root plugdev  10K 2008-10-26 21:56 data1.hdr
-rwxrwx--- 1 root plugdev  111 2008-10-26 21:56 DATA.TAG
-rwxrwx--- 1 root plugdev 283K 2008-10-26 21:56 _INST16.EX_
-rwxrwx--- 1 root plugdev 290K 2008-10-26 21:56 _INST32I.EX_
-rwxrwx--- 1 root plugdev 8,5K 2008-10-26 21:56 _ISDel.exe
-rwxrwx--- 1 root plugdev  23K 2008-10-26 21:56 lang.dat
-rwxrwx--- 1 root plugdev  655 2008-10-26 21:56 layout.bin
-rwxrwx--- 1 root plugdev  450 2008-10-26 21:56 os.dat
-rwxrwx--- 1 root plugdev 5,7K 2008-10-26 21:56 ProfileList.reg
-rwxrwx--- 1 root plugdev  12K 2008-10-26 21:56 _setup.dll
-rwxrwx--- 1 root plugdev  60K 2008-10-26 21:56 Setup.exe
-rwxrwx--- 1 root plugdev   61 2008-10-26 21:56 SETUP.INI
-rwxrwx--- 1 root plugdev  58K 2008-10-26 21:56 setup.ins
-rwxrwx--- 1 root plugdev  301 2008-10-26 21:56 setup.iss
-rwxrwx--- 1 root plugdev   49 2008-10-26 21:56 setup.lid
-rwxrwx--- 1 root plugdev 329K 2008-10-26 21:56 _sys1.cab
-rwxrwx--- 1 root plugdev 4,7K 2008-10-26 21:56 _sys1.hdr
-rwxrwx--- 1 root plugdev 1,8K 2008-10-26 21:56 _user1.cab
-rwxrwx--- 1 root plugdev 5,0K 2008-10-26 21:56 _user1.hdr

French/Power Saver/nawaktoo:

French/Power Saver Driver:
-rwxrwx--- 1 root plugdev 3,8M 2008-10-26 21:56 setup.exe
-rwxrwx--- 1 root plugdev  318 2008-10-26 21:56 setup.iss
-rwxrwx--- 1 root plugdev  128 2008-10-26 21:56 TVersion.xml

et j'aimerais prendre seulement les PATHs!

donc j'avais pensé a un "grep [prendre ttes les lignes apres une ligne vide] nom_du_fichier

comment on traduit le [prendre ttes les lignes apres une ligne vide]?

Dernière modification par bltz (Le 29/10/2008, à 15:49)

Hors ligne

#2 Le 29/10/2008, à 15:58

WW

Re : Qqs commandes bash

Salut,

Je pense que tu voulais plutôt dire après un retour à la ligne (retour chariot). Et je n'y arrive pas sad (pas trop essayer).
Je te propose à la place de prendre toutes les lignes qui contiennent des / typiquement les PATHs justement.
Donc un

grep [.]*/

Les [] servent à isolé un élément de l'expression régulière, ici le . qui lui permet de prendre n'importe quel caractère sauf les espacements.

Ensuite * indique le nombre de répétion de l'ensemble (ici [.]) puis on oblige que les caractères soient suivi par un /

Si les expressions régulières/pattern t'intéressent recherche regex dans google.


Quand on sait c'est facile, mais qui n'a jamais été débutant.

Hors ligne

#3 Le 29/10/2008, à 16:07

bltz

Re : Qqs commandes bash

oui je voulais dire retour chariot smile merci de ta reponse rapide je vais testé ca tongue

edit : ca marche niquel, encore merci smile

je reviens des que je suis blocké lol tongue

Dernière modification par bltz (Le 29/10/2008, à 16:11)

Hors ligne

#4 Le 29/10/2008, à 22:18

Alain.g

Re : Qqs commandes bash

Bonsoir

WW a écrit :

Donc un

grep [.]*/

Le joker (.) dans une classe de caractère ([ ]) est interprété littéralement comme un point. Donc ce motif correspond en réalité à "zéro, un ou plusieurs points suivis d'un slash"

Cela marche quand même du fait que "zéro point" est une possibilité.
Ce que tu voulais faire est  :

grep '.*/'

Mais on peut obtenir le même résultat simplement avec :

grep /

Dernière modification par Alain.g (Le 29/10/2008, à 22:18)


Xubuntu Karmic !

Hors ligne

#5 Le 29/10/2008, à 22:47

bltz

Re : Qqs commandes bash

donc en mettant seulement le slash, je selectionne toute les lignes apres un retour chariot?

Hors ligne

#6 Le 29/10/2008, à 22:54

Alain.g

Re : Qqs commandes bash

En mettant seulement le slash, tu obtiendras les lignes contenant au moins un slash.

Dernière modification par Alain.g (Le 29/10/2008, à 22:55)


Xubuntu Karmic !

Hors ligne

#7 Le 30/10/2008, à 14:48

WW

Re : Qqs commandes bash

Merci, pour les précisions @Alain.g. Pour le [] j'avais oublié mais je le savais c'est moche.
L'idée était bien grep / mais j'ai voulu donner plus d'info sur les regex et j'ai perdu.

Sinon une question indiscrète pour @Alain.g : Tu es dans l'informatique(/programmation) de formation ou juste par passion ??

Je te demande ça car tes conseils (au moins en bash) sont avisés et en général clairs, concis et propres.

Merci à toi, a+.


Quand on sait c'est facile, mais qui n'a jamais été débutant.

Hors ligne