Comment utiliser sed sur Mac OSX ?
Vous voulez remplacer une occurrence dans un fichier ? Vous essayez d’utiliser la commande sed mais son comportement est différent sur votre mac ?
Alors cet article est fait pour vous.
La commande sed est différente sur Mac OSX que sur les Linux traditionnels.
Dans cet article, nous verrons :
- en quoi consistent les différences sed gnu et sed osx
- comment adapter sed Mac OSX qu’il se comporte comme le sed GNU
- comment installer sed GNU sur Mac
Voyons sans plus tarder comment utiliser sed sur Mac OSX pour remplacer du contenu dans des fichiers.
Qu’est-ce qu’est la commande sed ?
La commande sed permet de lire un fichier ou l’entrée standard en modifiant le contenu lu grâce à une ligne de commande (comme, par exemple, des regex).
Le résultat de cette modification est ensuite écrit sur la sortie standard.
De nombreuses options permettent de modifier la commande pour divers cas d’utilisation.
Par exemple, l’option -i
permet d’écrire dans un fichier plutôt que dans la sortie standard, voire de modifier le fichier de lecture directement.
Quelles sont les différences entre sed GNU et sed OSX ?
Les différences sont variées entre l’adaption pour Mac OSX de l’outils en ligne de commande de GNU.
Une commande sed qui fonctionne sur Linux peut simplement ne pas fonctionner sur OSX.
La différence qui nous intéresse le plus est justement l’utilisation du flag -i
qui ne se comporte pas comme sur Linux.
Sur Mac OSX, vous devrez spécifier une extension de fichier ou une chaîne de caractères vide si vous voulez remplacer votre fichier directement.
Comment modifier un fichier avec sed ?
Pour remplacer les occurrences de votre regex dans votre fichier, vous pouvez utiliser les commandes suivantes.
La première crée un backup de votre fichier avec l’extension “la_nouvelle_extension”, que vous pouvez évidemment remplacer par l’extension que vous voulez.
sed -i.la_nouvelle_extension 'votre_regex' votre_fichier
Si vous êtes sûr de vous et que vous voulez directement remplacer le contenu de votre fichier, vous pouvez donner une extension vide ”.
sed -i '' 'votre_regex' votre_fichier
Comment installer le sed GNU sur Mac OSX ?
Si vous êtes habitué au sed de GNU, il est heureusement possible de l’installer sur votre Mac.
Les installateurs de packages comme Homebrew et MacPorts possèdent des versions de GNU sed.
Installer GNU sed avec Homebrew
Pour installer sed version GNU sur son mac avec Homebrew, utilisez la commande :
brew install gnu-sed
Installer GNU sed avec MacPorts
Pour installer sed version GNU sur son mac avec MacPorts, utilisez la commande :
sudo port install gsed
Aller plus loin avec sed et les regex sur OSX !
Bravo, vous savez maintenant comment utiliser la commande sed sur votre Mac !
Comme nous l’avons vu, sed OSX est un peu différent de sed GNU sur linux. Il existe heureusement plusieurs manières d’arriver au même résultat pour utiliser toute la puissance de cet outils en ligne de commande.
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.