Salut,
à partir d'un fichier 1.txt contenant ce genre de lignes
je souhaite isoler dans un fichier 2.txt les chemins, càd obtenir ce résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 expression1 pouvant contenir des caractères spéciaux C:\windows\abc.txt expression2 pouvant contenir des caractères spéciaux C:\windows\system32\z.dll expression3 pouvant contenir des caractères spéciaux F:\zeighnzcjrt.sys expression4 pouvant contenir des caractères spéciaux C:\a.inf etc
L'algorithme serait - à mon sens - le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 C:\windows\abc.txt C:\windows\system32\z.dll F:\zeighnzcjrt.sys C:\a.inf
J'ai essayé un certain nombre de commandes et il me semble que awk est la plus appropriée. En m'inspirant des quelques pages web relatives à ce genre de pb, j''en suis arrivé à ceci :pour chaque ligne du fichier 0.txt -> extraire toutes les chaîne de caractères qui commencent par l'expression : [a-zA-Z]:\
awk -F.*: '{print ".*:" $2 }' 1.txt
qui donne un résultat presque potable mais loin des attentes :
Icomplet et inabouti car je souhaiterais que la lettre de lecteur apparaisse (C, F, etc) et d'autre part, je souhaite définir le séparateur le plus précisément possible, càd un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 .*:\windows\abc.txt .*:\windows\system32\z.dll .*:\zeighnzcjrt.sys .*:\a.inf
awk -F[a-zA-Z]:\\ '{print......}
Malheureusement la plupart des combinaisons testées avec ce séparateur n'aboutissent à rien d'exploitable ou à des erreurs de syntaxe
Est-ce que awk est selon vous la bonne direction ? comment utiliser correctement ce séparateur ?
Merci![]()
Partager