Sous Mac OS 10.10.3, j'ai installé gnu-sed en tapant:
brew install gnu-sed --default-names
Quand je le tape à nouveau, je reçois le message:
gnu-sed-4.2.2 déjà installé
Cependant, même après avoir redémarré le système et redémarré Terminal, je ne peux toujours pas utiliser la version GNU de sed. Par exemple:
echo a | sed ’s_A_X_i’
renvoie: mauvais drapeau dans la commande de substitution 'i'
Que dois-je faire pour que la version GNU fonctionne? Voici les chemins dans ma variable $ PATH.
/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin
Je suis désolé si ma question semble évidente, mais j'apprends le script shell par moi-même et je ne comprends pas encore très bien comment les programmes UNIX sont installés. Toute aide pour utiliser des commandes compatibles GNU (dans ce cas sed, mais j'en aurai bientôt besoin d'autres aussi) sur mon Mac sans causer de dommages ou d'encombrement inutile serait grandement appréciée.
brew
installé GNUsed
? Ce répertoire est-il sur votrePATH
? Qu'est-ce que vous obtenez si vous tapezsed --version
? (BSDsed
se plaindra; GNUsed
rapportera ses informations de version.) Tant que vous n'aurez pas lebrew
répertoire sur votre PATH avant/usr/bin
ou que vous n'aurez appris à utiliser le chemin absolu vers GNUsed
, vous n'exécuterez pas GNUsed
. Soyez également prudent avec les citations.’
est une citation de traitement de texte, contrairement à'
.Réponses:
Remarque (2019):
L'
--with-default-names
option est supprimée depuis janvier 2019, donc maintenant cette option n'est plus disponible.Lors de l'installation, Homebrew explique comment adapter le chemin, si l'on veut utiliser sed sans le
g
préfixe.Vous avez déjà installé gnu-sed sans l'
--with-default-names
option.--with-default-names
option, il s'installesed
sur/usr/local/bin/
gsed
Donc, dans votre cas, ce que vous devez faire est:
Mettre à jour le chemin si nécessaire ...
ou utiliser
gsed
comme d'autres l'ont suggéré.la source
Lorsque vous installez la version GNU de
sed
pour Mac OS X en utilisant:Le programme que vous utilisez est
gsed
.Donc par exemple:
De plus, pour compléter l'utilisation des outils de commande GNU sur Mac OS X, il y a un joli article de blog ici pour obtenir les outils de Linux:
Installer et utiliser les outils de ligne de commande GNU sur Mac OS / OS X
la source
Le
sed
qui est livré avec OS X est en/usr/bin
.Le
sed
quihomebrew
installe est dans/usr/local/bin
.Si vous préférez utiliser celui-
homebrew
ci, vous avez deux options:Option 1
Chaque fois que vous souhaitez utiliser
homebrew
sed
, tapezou, de préférence
Option 2
Avancez
/usr/local/bin/
(c'est-à-dire avant)/usr/bin
dans votre PATH dans votre profil de connexion, comme cecila source
$ brew install gnu-sed
Avec ces deux commandes gnu-sed fonctionne correctement
la source
Si vous avez besoin d'utiliser la commande gnu-sed avec leurs noms normaux, vous pouvez ajouter un répertoire "gnubin" à votre PATH depuis votre bashrc. Utilisez simplement la commande suivante dans votre bash ou votre terminal.
la source
--with-default-names
ne fonctionne pas pour moi sur Mac OS X 10.14.2 donc je créé un lien symbolique nommésed
àgsed
plus haut dans la$PATH
J'ai également créé un lien symbolique nommé
sed.1
vers lagsed.1
page de manuel plus haut dans le$MANPATH
afin d'man
accéder à lagsed
page de manuel au lieu de lased
page de manuel par défautla source
alias sed=gsed
.