J’ai plusieurs fichiers d’accès utilisateurs dans plusieurs répertoires différent.
J’ai fait un script qui parcours récursivement les répertoires et au cas ou le fichier d’accès est présent le script met en majuscule le contenue via la commande « sed -i ‹ s/.*/\U&/ › fichier »
Mon but étant de le mettre en minuscule, mais comme c’est un fichier d’accès apache (htpasswd), il faudrait juste modifier les logins qui sont devant les « : »
J’arrive pas à trouver la façons d’utiliser les séparations avec sed.
$ echo "HELLO:WORLD" | sed 's@^[^:]\+:@\L&@g'
hello:WORLD
Donc :
find /chemin/vers/repertoire/ -type f -name '.htpasswd' -print0 | xargs -0 -n1 sed -i 's@^[^:]\+:@\L&@g'
Et avant qu’on me fasse la réflexion habituelle @ / je fais la réponse habituelle : je trouve le @ plus lisible (enfin, un peu moins illisible pour être précis).