Aucun message portant le libellé oneliner. Afficher tous les messages
Aucun message portant le libellé oneliner. Afficher tous les messages

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

dimanche 8 novembre 2009

"Oneliner" du mois

Voici les "onliner" que j'ai utilisé à profusion ce mois-ci:

find . -type f -print0 | xargs -0 grep -n 'RarePatternGoesHere'

find . -type f -name "*.ext" | xargs -0 perl -i -pe 's/oldpattern/newpattern/'