Remplacer du texte dans un fichier

Twitter Facebook Google Plus Linkedin email
closeCet article a été publié il y a 6 ans 3 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées, les commandes ne sont peut-être plus valides.

Aujourd’hui, j’ai un cas pratique à vous montrer pour vous expliquer l’intérêt de remplacer un mot, ou une partie d’un mot, par un autre dans un fichier texte, quand il revient souvent, et sans avoir à les faire un par un, avec GNU sed (et le bloc-notes sous Windows). Et en plus, c’est en lien avec d’autres articles que j’ai déjà publié 😛

La magie de Noël

Cette année, j’ai eu entre les mains un CD de musique d’un petit groupe indépendant du nom de Black Sabbath, regroupant les « greatest hits » des pères du Heavy Metal. Histoire de pouvoir en profiter dans la voiture tout en préservant le support original, je vais donc le transformer en numérique pour que cet album atterrisse sur la clé USB destinée à l’autoradio.

1° étape : enregistrement en FLAC

J’ai choisi le format FLAC comme première étape car c’est un format dit « sans pertes » (lossless en anglais, le L de FLAC), et donc permet de conserver toute la qualité du CD. Sur mon laptop sous Linux, j’ai utilisé asunder, qui en plus m’a dégoté les informations du CD grâce à CDDB. Sous Windows, je vous laisse tester cet article qui utilise le vénérable foobar2000 pour procéder au « rip », car je n’avais pas de machine Windows sous la main pour essayer la manipulation lors de l’écriture de l’article.

sed-asunder

2° étape : transformation en MP3

Je ne vais pas beaucoup m’étendre sur le sujet, parce que j’avais déjà décrit la méthode dans de précédents articles, l’un pour Windows, puis l’autre pour Linux. Pour Windows il semblerait que de meilleurs logiciels soient disponibles, faites-le moi savoir par les moyens qui sont à votre disposition.

3° étape : un peu de rangement

En effet, arrivé ici, j’ai un dossier avec le nom du CD, et dedans, des fichiers FLAC, des fichiers MP3, et un fichier M3U qui est une liste de lecture créée par asunder pour les fichiers FLAC; bref, un beau bordel. Donc, sous Linux, on va ranger les MP3 dans un dossier à part, et y mettre une copie de la liste de lecture :

Pas de panique, les « \ » (antislash) sont là pour « échapper » les espaces, afin qu’ils soient considérés comme des espaces standards, et pas des séparateurs d’arguments d’après le shell. Oui, cette phrase a du sens. Sous Windows, vous ferez tout ça à la souris avec l’explorateur de fichiers. Sous Linux aussi c’est possible, mais je trouve la méthode en ligne de commande autrement plus rapide, car avec l’auto-complétion je n’ai pas besoin de tout retaper à chaque fois.

4° étape : modification de la liste

Maintenant que les fichiers MP3 sont bien rangés, et que la liste est « prête », on va la modifier :

Explication : sed est l’outil qui permet, entre autres, de remplacer du texte. L’option -i lui dit qu’on va lui passer un fichier. Et c’est la « chaîne » de commande « s/.flac/.mp3/g » qui indique à sed ce qu’il doit faire sous la forme « s / motif / remplacement ». le /g permet de conserver les éventuels espaces trouvés dans le motif.

Et en écrivant l’article, je me rend compte qu’il y a la mention « flac » dans le nom de la liste. Hop, on renomme :

Sous Windows, vous pouvez utiliser le Bloc-Notes pour modifier la liste, comme je l’ai décrit pour la mise à jour de la base de données lors d’une migration WordPress, avec la fonction « remplacer ». En effet, une liste M3U n’est ni plus ni moins qu’un fichier texte avec un contenu bien particulier. Et je ne pense pas avoir besoin de vous aider à renommer un fichier, j’espère ?

L’album est prêt !

On peut donc maintenant profiter d’un bon moment avec de la bonne musique lors des longs trajets des fêtes de fin d’année, sans avoir à changer de disque toutes les heures et donc détourner son attention de la route autant de fois. Et vous savez désormais remplacer du texte dans un fichier, sans avoir à tout faire à la main. C’est beau l’informatique n’est-ce pas ?

C’est un exemple, mais les gens manipulant souvent des fichiers de configuration pourront aussi trouver intéressant d’utiliser sed pour modifier certains paramètres plutôt que d’ouvrir le fichier, chercher, modifier, sauvegarder. Pour ceux qui voudraient aller plus loin, une fois n’est pas coutume je vous indiquerais plutôt l’article de Wikipedia sur sed au lieu de la page de man, car il est plus digeste.

le plus récent le plus ancien
Notifier de
Laurent
Invité

Merci Seboss pour ce tuto qui m’a aidé à faire ma playlist pour ma voiture 😉