mercredi 25 novembre 2009

Invite de commandes

Dans mon "post" intitulé "Oneline" du mois, j'utilisais les commandes find et perl afin de remplacer massivement un "pattern" sans avoir à le faire fichiers par fichiers. Mais, comme vous avez surement deviné, c'était sous linux. Alors, comment faire sous Windows.

Je n'avais jamais eu à faire du remplacement massif d'envergure sous Windows (ni sous linux d'ailleur) alors je me contentais de Notepad++. Il est quand même capable de prendre une cinquantaine de fichiers et plus. Mais aujourd'hui, j'ai eu à travailler sur plus de 11 000 fichiers et j'ai eu trop peur d'essayer de les charger tous en même dans np++. J'ai donc ressorti ma bible de MS-DOS 6.0 et j'en ai profité pour mettre en signet la page MSDOS de ComputerHope.com.

Voici donc ma très humble "oneliner" pour remplacement massif sous Windows :

FOR /F "usebackq" %i IN (`DIR . /B/A-D`) DO perl -i.orig -pe "s/\x22//g" %i

Remarquez que j'ai mis en rouge les "double-quotes". Vous ne pouvez pas mettre des "single-quotes" comme sous linux; ça ne fonctionnera point. Il semblerais que sous Windows, Perl ne peu faire du "inplace edit" ou du moins, la version que j'ai d'installé. C'est pourquoi je dois spécifier une extension à l'option -i.

J'en profite au passage pour souligner, à mes très chers amateurs de "oneliner", les deux sites suivants :  
Command Line Kung Fu - j'adore la petite compétition entre les windowsien et les linuxien de ce blog
Command Line Fu - dépôt massif de ligne de commandes

Aucun commentaire:

Publier un commentaire