# SED Minuscule récursif

**URL:** <https://www.debian-fr.org/t/sed-minuscule-recursif/54220>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220 "2016-02-21T12:51:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![fabien493](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/f14d63/32.png) [@fabien493](https://www.debian-fr.org/u/fabien493)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/1 "2016-02-21T12:51:16Z")

</div>

Bonjour,

Je cherche la commande inverse de celle ci :

> [@](#):
>
> sed -i ‹&nbsp;s/.\*/\U&/&nbsp;› fichier

Cependant je cherche à ajouter un séparateur.

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 «&nbsp;sed -i ‹&nbsp;s/.\*/\U&/&nbsp;› fichier&nbsp;»

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 «&nbsp;:&nbsp;»

J’arrive pas à trouver la façons d’utiliser les séparations avec sed.

Merci d’avance,  
Fabien493

---

<div class="post-metadata">

**Author:** ![lol](https://www.debian-fr.org/user_avatar/www.debian-fr.org/lol/32/15629_2.png) [@lol](https://www.debian-fr.org/u/lol)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/2 "2016-02-21T12:51:21Z")

</div>

Salut,  
Je déplace dans programmation, tu auras certainement + de réponses.

---

<div class="post-metadata">

**Author:** ![fabien493](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/f14d63/32.png) [@fabien493](https://www.debian-fr.org/u/fabien493)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/3 "2016-02-21T12:51:21Z")

</div>

merci lol, ça fait longtemps…que tu ne m’avais pas déplacé 🙂

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/4 "2016-02-21T12:51:22Z")

</div>

`$ echo "HELLO:WORLD" | sed 's@^[^:]\+:@\L&@g'
hello:WORLD`  
Donc :

```auto
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). ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![fabien493](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/f14d63/32.png) [@fabien493](https://www.debian-fr.org/u/fabien493)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/5 "2016-02-21T12:51:22Z")

</div>

Bonjour syam,

Merci infiniment pour ta solution, je l’ai intégré à ma boucle ça fonctionne nickel.

Personnellement, j’étais plus partie sur un truc de ce genre :

> [@](#):
>
> Sed –i s/(._):(._)/\U\1:\2

Ou

> [@](#):
>
> Sed –i s/(._):(._)/\U\1:\2

Bref, merci ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/6 "2016-02-21T12:51:22Z")

</div>

[quote=«&nbsp;fabien493&nbsp;»]Personnellement, j’étais plus partie sur un truc de ce genre :

> [@](#):
>
> Sed –i s/(._):(._)/\U\1:\2[/quote]

Dans ce cas, ça serait plutôt (non testé) :

```auto
's@^\([^:]\+\):\(.*\)$@\L\1\E:\2@g'
```

Mais vu que ça fait la même chose et que c’est beaucoup moins lisible que ma première solution… 😉

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:51 UTC](https://www.debian-fr.org/t/sed-minuscule-recursif/54220/7 "2016-02-21T12:51:22Z")

</div>

J’aime bien la version awk :

```auto

```
