Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2008, 13h56   #1
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Par défaut Sed extraire une sous-chaine lettre de lecteur

Bonjour,

encore une question avec sed. Je cherche à extraire, dans un fichier, toutes les chaines de caractère commençant par une lettre de lecteur (C, D, E, c, d...) et terminant les lignes :

Exemple du fichier :

Code :
1
2
3
4
5
6
7
fichier:vbs 10ko script C:\windows\script vbs.vbs
Dossier:répertoire 400Mo ; f:\Dossier
chaine de caractères quelconque
texte sans intérêt 
Nouveau dossier - fichier / répertoire. C:\f.bat
D:\fichier.txt
...
Il n'y a pas spécialement d'éléments permanents si ce n'est que le chemin des fichiers/dossiers termine les lignes.

Résultat attendu :

Code :
1
2
3
4
C:\windows\script vbs.vbs
f:\Dossier
C:\f.bat
D:\fichier.txt
Ca m'énerve vachement de ne pas trouver d'autant que j'ai retourné toutes les pages sur sed (motifs, sous-chaines...) et qu'en plus BlaireauOne m'avait donné une solution pour une question assez similaire mais dont la commande ne semble pas marcher dans ce cas...

Donc une lettre de lecteur sera le début de la chaine à extraire [a-zA-Z], et elle sera toujours suivie de l'expression :\ soit :

Code :
extraire toutes les parties de droite des chaines du ffichier commençant par [a-zA-Z]:\
voilà ça c'est le papier, maintenant en pratique ça ne va pas du tout. J'ai essayé un tas de combinaisons qui ne renvoient pour la plupart aucun résultat (pas de message d'erreur), en voici une :

Code :
sed -n '/ [a-zA-Z]:\\*$/s/^.*\( [a-zA-Z]:\\*$\)/\1/p'
A noter que j'ai inclus un espace avant la lettre de lecteur dans cet exemple, mais ce n'est pas forcément toujours le cas. Qu'est-ce qui ne va pas, et où pourrais-je trouver un cours qui détaille bien ce type d'extraction ?

Ce n'est pas tant la commande exacte qui m'intéresse mais surtout le cheminement pour mettre en forme cette recherche

Merci
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 18h14   #2
Membre éprouvé
 
Avatar de Schmorgluck
 
Inscription : mai 2006
Messages : 350
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : mai 2006
Messages : 350
Points : 436
Points : 436
Examinons cette regex :
Elle cherche à reconnaître un espace, suivi d'une lettre, suivi d'un deux-points, suivi de zéro, une ou plusieurs barres obliques inverses, suivies de la fin de la chaîne. Ça ne ressemble pas vraiment à ce que tu cherches. Tu n'aurais pas oublié un point quelque part, des fois ?
__________________
There's nothing like $HOME!
Schmorgluck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 18h43   #3
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Salut, et merci

Citation:
l'expression englobe "zéro, une ou plusieurs barres obliques"
je me suis emmelé les pinceaux tellement c'est complexe en fait le caractère * signifie effectivement "zéro ou plus occurrences du caractère précédent le *" donc il ne devrait pas y être vu que le fait qu'il n'y a qu'une barre \ après la lettre de lecteur et le deux-points fait partie de "l'énoncé". Donc déjà ça ne devrait pas être de cette forme plutot :

Code :
sed -n '/ [a-zA-Z]:\\$/s/^.*\( [a-zA-Z]:\\$\)/\1/p'
Citation:
Tu n'aurais pas oublié un point quelque part, des fois ?
en fait j'avais aussi testé ceci

Code :
sed -n '/ [a-zA-Z]:\\.*$/s/^.*\( [a-zA-Z]:\\*$\)/\1/p'
avec le point avant le *$, mais ça ne fonctionnait pas plus.

Si j'ai bien compris, le point dans une expression régulière indique n'importe quel caractère seul http://www.gentoo.org/doc/fr/articles/l-sed1.xml
Mais, dans la formulation du problème, je ne vois pas où j'aurais besoin de situer "n'importe quel caractère seul" ?
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 20h40   #4
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 946
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 946
Points : 1 085
Points : 1 085
Citation:
Envoyé par eZula Voir le message
Donc déjà ça ne devrait pas être de cette forme plutot :

Code :
sed -n '/ [a-zA-Z]:\\$/s/^.*\( [a-zA-Z]:\\$\)/\1/p'
Le $, mets-le en dehors d'un groupe (tu n'as pas à le sélectionner ).
Tu lui dis ici que le \ est en fin de ligne. Ce n'est pas ce que tu veux.

Citation:
Envoyé par eZula Voir le message
avec le point avant le *$, mais ça ne fonctionnait pas plus.
Comment ça ?

J'ai essayé ta commande (en ajoutant un point), sur ton fichier d'entrée, et ça marche.

Note : l'espace qui est devant la lettre de lecteur, je pense que tu veux la sortir du groupe ( ).
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 21h35   #5
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Ok, alors comme ceci ça a l'air déjà mieux

Code :
1
2
3
4
sed -n '/\([a-zA-Z]:\\\).*$/s/^.*\([a-zA-Z]:\\.*$\)/\1/p'
 
C:\windows\script vbs.vbs
D:\fichier.txt
mais il manque deux éléments dans le fichier (attention, qui n'est qu'un exemple l'idée est juste que ces chemins finissent les lignes dans un fichier en vrac) : f:\Dossier et C:\f.bat

Je n'arrive pas à saisir comment sortir l'espace du groupe

Code :
1
2
3
4
5
sed -n '/\ ([a-zA-Z]:\\\).*$/s/^.*\([a-zA-Z]:\\.*$\)/\1/p' z
sed: -e expression n°1, caractère 21: Échec du pairage de ) ou de \)
 
sed -n '/\ ([a-zA-Z]:\\\).*$/s/^.*\([a-zA-Z]:\\.*$\)/\1/p' z
sed: -e expression n°1, caractère 21: Échec du pairage de ) ou de \)
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 22h01   #6
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
en fait j'avais aussi testé ceci

Code :
sed -n '/ [a-zA-Z]:\\.*$/s/^.*\( [a-zA-Z]:\\*$\)/\1/p'
avec le point avant le *$, mais ça ne fonctionnait pas plus.

Si j'ai bien compris, le point dans une expression régulière indique n'importe quel caractère seul http://www.gentoo.org/doc/fr/articles/l-sed1.xml
Mais, dans la formulation du problème, je ne vois pas où j'aurais besoin de situer "n'importe quel caractère seul" ?
Il manque un point dans ton sed.
Version correcte ci-dessous :

Code :
sed -n '/ [a-zA-Z]:\\.*$/s/^.*\( [a-zA-Z]:\\.*$\)/\1/p'

Important à comprendre :
. --> un caractère quelconque
* --> 0 à n fois le caractère qui précède
.* --> 0 à n fois un caractère quelconque


[a-zA-Z]:\\.*$

un caractère alphabétique (minuscule ou masjucule) suivi de
un caractère : suivi de
un caractère \ suivi de
un caractère quelconque présent 0 à n fois jusqu'à la fin de la ligne


La commande suivante est plus précise car on remplace le * par un +

Code :
sed -n '/ [a-zA-Z]:\\.\+$/s/^.*\( [a-zA-Z]:\\.\+$\)/\1/p'
* --> 0 à n fois le caractère qui précède
+ --> 1 à n fois le caractère qui précède

Un peu prise de tête
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 05h50   #7
Membre éprouvé
 
Avatar de Schmorgluck
 
Inscription : mai 2006
Messages : 350
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : mai 2006
Messages : 350
Points : 436
Points : 436
Citation:
Envoyé par eZula Voir le message
Ok, alors comme ceci ça a l'air déjà mieux
Je n'arrive pas à saisir comment sortir l'espace du groupe
En l'ignorant totalement dès le départ, peut-être ?
Code :
sed -n '/[a-zA-Z]:\\.*$/ s/^.*\([a-zA-Z]:\\.*$\)/\1/p'
Normalement, ça marche.
Si, cependant, il peut arriver que tu aies une chaîne de la forme "aa:\" dans ton fichier et que dans ce cas là tu ne veux pas que ça corresponde, tu peux utiliser une ancre de début de mot \<, là où tu plaçais ton espace (en gros), comme ceci :
Code :
sed -n '/\<[a-zA-Z]:\\.*$/ s/^.*\<\([a-zA-Z]:\\.*$\)/\1/p'
__________________
There's nothing like $HOME!
Schmorgluck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 17h32   #8
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Salut,

merci pour toutes ces lumières. Toutefois, aucune de ces commandes ne renvoie la totalité du résultat attendu.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
sed -n '/ [a-zA-Z]:\\.*$/s/^.*\( [a-zA-Z]:\\.*$\)/\1/p' renvoie :
 C:\windows\script vbs.vbs
 
sed -n '/ [a-zA-Z]:\\.*$/s/^.*\( [a-zA-Z]:\\.*$\)/\1/p' renvoie :
 C:\windows\script vbs.vbs
 
sed -n '/[a-zA-Z]:\\.*$/ s/^.*\([a-zA-Z]:\\.*$\)/\1/p' renvoie :
C:\windows\script vbs.vbs
D:\fichier.txt
 
sed -n '/\<[a-zA-Z]:\\.*$/ s/^.*\<\([a-zA-Z]:\\.*$\)/\1/p' renvoie
C:\windows\script vbs.vbs
D:\fichier.txt
Càd que dans le meilleur des cas, il manque toujours f:\Dossier et C:\f.bat

Et si j'applique ces commandes à un fichier de présentation + complexe, par exemple un rapport antivirus

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Spyware:Cookie/2o7 No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@112.2o7[1].txt
Spyware:Cookie/2o7 No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@2o7[1].txt
Spyware:Cookie/AdDynamix No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@ads.addynamix[2].txt
Spyware:Cookie/PointRoll No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@ads.pointroll[2].txt
Spyware:Cookie/Adtech No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@adtech[2].txt
Spyware:Cookie/Advertising No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@advertising[2].txt
Spyware:Cookie/Atlas DMT No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@atdmt[2].txt
Spyware:Cookie/Bfast No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@bfast[2].txt
Spyware:Cookie/Bluestreak No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@bluestreak[1].txt
Spyware:Cookie/Serving-sys No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@bs.serving-sys[1].txt
Spyware:Cookie/Bridgetrack No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@citi.bridgetrack[1].txt
Spyware:Cookie/Doubleclick No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@doubleclick[2].txt
Spyware:Cookie/FastClick No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@fastclick[1].txt
Spyware:Cookie/Maxserving No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@maxserving[2].txt
Spyware:Cookie/Mediaplex No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@mediaplex[1].txt
Spyware:Cookie/Overture No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@overture[2].txt
Spyware:Cookie/Overture No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@perf.overture[1].txt
Spyware:Cookie/QuestionMarket No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@questionmarket[2].txt
Spyware:Cookie/Server.iad.Liveperson No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@server.iad.liveperson[2].txt
Spyware:Cookie/Serving-sys No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@serving-sys[2].txt
Spyware:Cookie/Reliablestats No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@stats1.reliablestats[1].txt
Spyware:Cookie/Tribalfusion No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@tribalfusion[1].txt
Spyware:Cookie/Weborama No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@weborama[2].txt
Spyware:Cookie/Xiti No Désinfecté C:\Documents and Settings\Claude\Cookies\claude@xiti[1].txt
Adware:Adware/Beginto No Désinfecté C:\Documents and Settings\Claude\Local Settings\Temp\smoF.tmp
Spyware:Cookie/Serving-sys No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.bs.serving-sys.com/]
Spyware:Cookie/Serving-sys No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.serving-sys.com/]
Spyware:Cookie/Smartadserver No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.smartadserver.com/]
Spyware:Cookie/Xiti No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.xiti.com/]
Spyware:Cookie/Smartadserver No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.smartadserver.com/]
Spyware:Cookie/Overture No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.overture.com/]
Spyware:Cookie/Doubleclick No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.doubleclick.net/]
Spyware:Cookie/Weborama No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.weborama.fr/]
Spyware:Cookie/Tradedoubler No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.tradedoubler.com/]
Spyware:Cookie/2o7 No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.2o7.net/]
Spyware:Cookie/Apmebf No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.apmebf.com/]
Spyware:Cookie/Bluestreak No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.bluestreak.com/]
Spyware:Cookie/Atlas DMT No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.atdmt.com/]
Spyware:Cookie/Adviva No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.adviva.net/]
Spyware:Cookie/fe.lea.lycos No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[fe.lea.lycos.fr/]
Spyware:Cookie/adultfriendfinder No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.adultfriendfinder.com/]
Spyware:Cookie/Mediaplex No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.mediaplex.com/]
Spyware:Cookie/Com.com No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.com.com/]
Spyware:Cookie/YieldManager No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[ad.yieldmanager.com/]
Spyware:Cookie/Comclick No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[fl01.ct2.comclick.com/]
Spyware:Cookie/Advertising No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.advertising.com/]
Spyware:Cookie/Casalemedia No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.casalemedia.com/]
Spyware:Cookie/FastClick No Désinfecté C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.fastclick.net/]
Spyware:Cookie/adultfriendfinder No Désinfecté C:\Documents and Settings\Xavier\Cookies\xavier@adultfriendfinder[1].txt
Spyware:Cookie/Serving-sys No Désinfecté C:\Documents and Settings\Xavier\Cookies\xavier@bs.serving-sys[2].txt
Spyware:Cookie/Serving-sys No Désinfecté C:\Documents and Settings\Xavier\Cookies\xavier@serving-sys[1].txt
Spyware:Cookie/Smartadserver No Désinfecté C:\Documents and Settings\Xavier\Cookies\xavier@smartadserver[2].txt
Spyware:Cookie/Weborama No Désinfecté C:\Documents and Settings\Xavier\Cookies\xavier@weborama[1].txt
Spyware:Cookie/Xiti No Désinfecté C:\Documents and Settings\Xavier\Cookies\xavier@xiti[1].txt
Hacktool:HackTool/EvID No Désinfecté C:\Program Files\eChanblard\config\last.zip[EvID4226Patch.exe]
Hacktool:HackTool/EvID No Désinfecté C:\Program Files\eChanblard\EvID4226Patch.exe
Adware:Adware/ActiveSearch No Désinfecté C:\WINDOWS\Installer\49bb6.msi[unk_0032][tbhelper.dll]
Outil indésirable:application/bestoffer No Désinfecté C:\WINDOWS\smdat32m.sys
Adware:adware/cydoor No Désinfecté C:\WINDOWS\system32\cd_clint.dll
coucou
bonjour
Outil indésirable:application/errorsafe No Désinfecté HKEY_LOCAL_MACHINE\SOFTWARE\ERRORSAFE 
Outil indésirable:application/altnet No Désinfecté HKEY_CLASSES_ROOT\CLSID\{3646C2BD-3554-49CA-8125-44DEEFB881DE}
aucun résultat n'est envoyé. Comment cela se fait-il ?
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 18h33   #9
Membre éprouvé
 
Avatar de Schmorgluck
 
Inscription : mai 2006
Messages : 350
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : mai 2006
Messages : 350
Points : 436
Points : 436
Ça n'est pas normal, mais pas normal du tout. J'ai testé les commandes que j'ai proposées, elles renvoient bien les résultats attendus. Là, il va falloir que tu nous expliques comment exactement tu appelles sed, c'est à dire ce que tu mets exactement sur ta ligne de commande.
__________________
There's nothing like $HOME!
Schmorgluck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 18h57   #10
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Bon au moins c'est rassurant si ça marche chez vous. Alors pour faire simple, le fichier test s'appelle z.txt et il contient ceci :

Code :
1
2
3
4
5
6
fichier:vbs 10ko script C:\windows\script vbs.vbs
Dossier:répertoire 400Mo ; f:\Dossier
chaine de caractères quelconque
texte sans intérêt 
Nouveau dossier - fichier / répertoire. C:\f.bat
D:\fichier.txt
j'ouvre le terminal dans le dossier qui contient ce fichier, le prompt est bien au niveau de ce dossier, et ensuite je lance sed de cette manière (exemple avec une de vos commandes mais c'est la même démarche à chque fois):

Code :
sed -n '/\<[a-zA-Z]:\\.*$/ s/^.*\<\([a-zA-Z]:\\.*$\)/\1/p' z.txt
voilà la résultat :

Code :
1
2
3
user@linux-jsfm:~/Documents/Scripts/ScanOnline> sed -n '/[a-zA-Z]:\\.*$/ s/^.*\([a-zA-Z]:\\.*$\)/\1/p' z.txt
C:\windows\script vbs.vbs
D:\fichier.txuser@linux-jsfm:~/Documents/Scripts/ScanOnline>
à noter que le dernier résultat se colle bizarrement sur le prompt... je sais pas pourquoi ça fait ça.

EDIT >> aïe... je viens d'enlever l'accent de "répertoire" à la deuxième ligne du fichier test. IDu coup la commande renvoie bien f:\Dossier en plus. Ca vient des accents, merde ça va faire comme sur le post que j'ai créé tout à l'heure avec awk qui ignore des variables contenant des caractères spéciaux http://www.developpez.net/forums/sho...d.php?t=502913

Code :
1
2
3
4
5
6
7
recode ISO8859-1..UTF8 z.txt
sed -n '/[a-zA-Z]:\\.*$/ s/^.*\([a-zA-Z]:\\.*$\)/\1/p' z.txt
 
C:\windows\script vbs.vbs
f:\Dossier
C:\f.bat
D:\fichier.txt
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2008, 22h01   #11
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Alternative grep?
Code :
 egrep -io ' [a-z]:\\.+$' ton-fichier
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 07h17   #12
Membre du Club
 
Inscription : mars 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 158
Points : 48
Points : 48
Salut,

ripat ta commande semble fonctionner (j'ai levé l'espace devant [a-z] sinon il est reporté dans le résultat :

Code :
1
2
3
4
5
egrep -io '[a-z]:\\.+$' z.txt
C:\windows\script vbs.vbs
f:\Dossier
C:\f.bat
D:\fichier.txt
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
egrep -io '[a-z]:\\.+$' Panda.txt
C:\Documents and Settings\Claude\Cookies\claude@112.2o7[1].txt
C:\Documents and Settings\Claude\Cookies\claude@2o7[1].txt
C:\Documents and Settings\Claude\Cookies\claude@ads.addynamix[2].txt
C:\Documents and Settings\Claude\Cookies\claude@ads.pointroll[2].txt
C:\Documents and Settings\Claude\Cookies\claude@adtech[2].txt
C:\Documents and Settings\Claude\Cookies\claude@advertising[2].txt
C:\Documents and Settings\Claude\Cookies\claude@atdmt[2].txt
C:\Documents and Settings\Claude\Cookies\claude@bfast[2].txt
C:\Documents and Settings\Claude\Cookies\claude@bluestreak[1].txt
C:\Documents and Settings\Claude\Cookies\claude@bs.serving-sys[1].txt
C:\Documents and Settings\Claude\Cookies\claude@citi.bridgetrack[1].txt
C:\Documents and Settings\Claude\Cookies\claude@doubleclick[2].txt
C:\Documents and Settings\Claude\Cookies\claude@fastclick[1].txt
C:\Documents and Settings\Claude\Cookies\claude@maxserving[2].txt
C:\Documents and Settings\Claude\Cookies\claude@mediaplex[1].txt
C:\Documents and Settings\Claude\Cookies\claude@overture[2].txt
C:\Documents and Settings\Claude\Cookies\claude@perf.overture[1].txt
C:\Documents and Settings\Claude\Cookies\claude@questionmarket[2].txt
C:\Documents and Settings\Claude\Cookies\claude@server.iad.liveperson[2].txt
C:\Documents and Settings\Claude\Cookies\claude@serving-sys[2].txt
C:\Documents and Settings\Claude\Cookies\claude@stats1.reliablestats[1].txt
C:\Documents and Settings\Claude\Cookies\claude@tribalfusion[1].txt
C:\Documents and Settings\Claude\Cookies\claude@weborama[2].txt
C:\Documents and Settings\Claude\Cookies\claude@xiti[1].txt
C:\Documents and Settings\Claude\Local Settings\Temp\smoF.tmp
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.bs.serving-sys.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.serving-sys.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.smartadserver.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.xiti.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.smartadserver.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.overture.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.doubleclick.net/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.weborama.fr/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.tradedoubler.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.2o7.net/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.apmebf.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.bluestreak.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.atdmt.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.adviva.net/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[fe.lea.lycos.fr/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.adultfriendfinder.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.mediaplex.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.com.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[ad.yieldmanager.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[fl01.ct2.comclick.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.advertising.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.casalemedia.com/]
C:\Documents and Settings\Xavier\Application Data\Mozilla\Firefox\Profiles\ra8a3qlo.default\cookies.txt[.fastclick.net/]
C:\Documents and Settings\Xavier\Cookies\xavier@adultfriendfinder[1].txt
C:\Documents and Settings\Xavier\Cookies\xavier@bs.serving-sys[2].txt
C:\Documents and Settings\Xavier\Cookies\xavier@serving-sys[1].txt
C:\Documents and Settings\Xavier\Cookies\xavier@smartadserver[2].txt
C:\Documents and Settings\Xavier\Cookies\xavier@weborama[1].txt
C:\Documents and Settings\Xavier\Cookies\xavier@xiti[1].txt
C:\Program Files\eChanblard\config\last.zip[EvID4226Patch.exe]
C:\Program Files\eChanblard\EvID4226Patch.exe
C:\WINDOWS\Installer\49bb6.msi[unk_0032][tbhelper.dll]
C:\WINDOWS\smdat32m.sys
C:\WINDOWS\system32\cd_clint.dll
je vous tiens au courant après d'autres essais. Merci
eZula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2008, 07h34   #13
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Citation:
Envoyé par eZula Voir le message
Salut,

ripat ta commande semble fonctionner (j'ai levé l'espace devant [a-z] sinon il est reporté dans le résultat :
L'espace était là pour éviter de capturer des chaîne comme:
Ceci ne doit pas être capturéC:/ mais bien ceci A:/exemple

L'idéal est d'utiliser l'assertion \b qui marque la séparation des mots et qui ne consomme pas de caractères. C'est une assertion de position.
Code :
egrep -io '\b[a-z]:\\.+$'
Avantage: si tu as une ponctuation devant ta chaîne à capturer, elle ne capturera que cette chaîne *sans* la ponctuation.
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h16.


 
 
 
 
Partenaires

Hébergement Web