Comment utiliser sed sur Mac OSX ?

Article publié le vendredi 25 février 2022 et mis à jour le mercredi 3 avril 2024.

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.

N’hésitez pas à nous dire sur Twitter si vous avez un problème avec sed !

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.