sa march pa sa march pa...
je suis d'accord avec Flodelarab, non content d'arriver à utiliser les commandes pour trouver son bonheur il va aussi être question d'optimiser un peu le traitement sur 50000 fichiers, xargs à la rescousse :
find -L /website/ -type f -name "*.html" -print0 | xargs -0 -n100 -P$(grep -c "^processor" /proc/cpuinfo) grep -lP "(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}"
- l'option -L parcequ'on sait jamais, des fois qu'il y ait des répertoires sous forme de liens symboliques par exemple
- l'option -type f parcequ'on ne sait jamais, des fois que quelqu'un ait eu la bonne idée de créer "repertoire.html/"
- l'option -print0 parceque le nom du fichier peut éventuellement comporter des caractères spéciaux, à minima des espaces
- et pour xargs pareil, l'option -0 pour récupérer la sortie en print0 du find
- l'option -n100 pour spécifier qu'on traite les fichiers par lots de 100
- l'option -P pour paralléliser la recherche sur $(grep -c "^processor" /proc/cpuinfo) threads, c'est à dire autant que c'est judicieux finalement
- et sur le dernier grep, l'option -l pour afficher le nom du fichier dès la première occurrence trouvée et arrêter le traitement du fichier en cours
- l'option -P pour utiliser les regex pcre... à vérifier mais je suis pas certain que les quantifieurs {x,y} fonctionnent avec les regex POSIX ou étendues...
Partager