J'essaie d'utiliser une expression régulière pour analyser un fichier journal généré à partir d'une commande dir
de PSFTP.PSFTP Comment obtenir le nom de fichier à partir de la commande Dir en utilisant RegExp
Exemple Dir exemple 1
drwxr-xr-x 1 0 0 0 Jun 21 13:13 .
drwxr-xr-x 1 0 0 0 Jun 21 13:13 ..
-rw-r--r-- 1 0 0 897 Jun 20 15:02 EQA.txt
-rw-r--r-- 1 0 0 897 Jun 20 15:06 EQA1.txt
-rw-r--r-- 1 0 0 897 Jun 16 20:41 Test.txt
-rw-r--r-- 1 0 0 897 Jun 16 21:46 Test1.txt
-rw-r--r-- 1 0 0 897 Jun 21 13:13 Test4.txt
-rw-r--r-- 1 0 0 913 May 31 18:01 test.123456789.txt
psftp> bye
EXEMPLE Exemple Dir 2
drwx------ 2 MikePC-apps users 4096 Apr 5 2016 .
drwx------ 4 MikePC-apps users 4096 Jan 20 2016 ..
-rw-r--r-- 1 MikePC-apps users 82 Apr 5 2016 test.txt.$01
-rw-r--r-- 1 MikePC-apps users 82 Aug 10 2016 test.txt.$02
-rw-r--r-- 1 MikePC-apps users 82 Aug 10 2016 test.txt.asc
-rw-r--r-- 1 MikePC-apps users 82 Aug 10 2016 test1.txt.$01
-rw-r--r-- 1 MikePC-apps users 1927 Apr 4 2016 test.zip
D'après ce que je trouve sur le net, si un fichier est de plus de 6 mois ou à l'avenir, l'année est affiché à la place de l'heure dans la journée.
Pour l'exemple 1, j'utilise une expression regex :/d/d/s .*.*.*
suivie d'une fonction de sous-chaîne pour récupérer les noms de fichiers.
Mais je ne sais pas comment aborder le deuxième exemple. J'espérais peut-être qu'il y ait un paramètre pour la commande dir
pour inclure l'horodatage afin que je puisse utiliser la même regex. Ou peut-être existe-t-il une autre expression régulière qui peut gérer les deux exemples.
Merci beaucoup!
Merci pour la solution, je modifie le motif à 'modèle de chaîne = @"^('attrib' [^ \ s] +?) \ S + ('liens'? [^ \ s] +) \ s + (? 'propriétaire' [^ \ s] +) \ s + (? 'groupe' [^ \ s] +) \ s + (? 'taille' [^ \ s] +) \ s + (? 'date'. +) \ s + (? 'nom_fichier'. +) $ ";' ceci est également inclus 'test1.txt. $ 01' comme nom de fichier. +1 (Désolé de ne pas pouvoir voter) Merci – Bonobo
Le $ 01 fait partie du nom de fichier – jdweng
J'ai testé la regex '([^ \ s] +) \ s + ([^ \ s] +) \ s + ([^ \ s ] +) \ s + ([^ \ s] +) \ s + ([^ \ s] +) \ s + (. +) \ s + ([^ $] +) 'sur [Regexr] (http: // regexr. com /) et il s'est arrêté à $ en raison de [^] est un ensemble nié. J'ai supprimé $ à la fin du motif car la chaîne est déjà divisée en phrase – Bonobo