Pages : 1
#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
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 (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 merci de ta reponse rapide je vais testé ca
edit : ca marche niquel, encore merci
je reviens des que je suis blocké lol
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
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
Pages : 1