Ik gebruik oh my zsh. Ik kan sommige commandos niet gebruiken die ik op ubuntu zou kunnen doen voor bijvoorbeeld .. \ s in reguliere expressies. Ik heb home-brew geïnstalleerd en daarna brew install gnu-sed --default-names
, maar ik kan nog steeds het sed-commando niet gebruiken. Mijn $ PATH-variabele is een beetje in de war en ik weet niet zeker hoe ik het moet corrigeren.
/Users/ishansrivastava/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin:/opt/X11/bin:/Library/TeX/texbin
Wat moet ik doen zodat ik alle GNU-opdrachten kan gebruiken zonder gedoe op mijn Mac? Geef me ook de lijst met commandos waarop ik gnu-commando moet gebruiken in plaats van standaard voor bijv. gsed
in plaats van sed
etc.
Opmerkingen
- Gerelateerd: stackoverflow.com/questions/30003570 / …
Antwoord
Zoals vermeld in een andere vraag , bij installatie van GNU sed
met Homebrew met --with-default-names
, dan wordt het geïnstalleerd als /usr/local/bin/sed
.
Zonder --with-default-names
wordt het geïnstalleerd als /usr/local/bin/gsed
.
Indien geïnstalleerd als sed
, hangt het af van uw $PATH
wat sed
binair bestand wordt opgepikt wanneer u sed
uitvoert. Als je $PATH
is zoals je hebt beschreven, dan zou GNU sed
voorrang moeten hebben op het native macOS sed
.
Merk op dat de shell de locatie van het sed
commando mogelijk al in de cache heeft opgeslagen als je het commando eerder op de commandoregel in hetzelfde shell-sessie. U kunt dan rehash
in zsh
gebruiken om die cache te wissen, of u kunt een nieuwe terminal openen.
Wanneer een systeem een native sed
implementatie biedt die niet GNU sed
is, dan is het vaak beter om GNU sed
als gsed
om bestaande scripts niet te verbreken op basis van gedrag dat specifiek is voor de native sed
. Dit is de reden waarom het standaardgedrag van Homebrew op macOS is om GNU sed
te installeren als gsed
. Dit is ook de standaardmanier om GNU sed
(en GNU-tools in het algemeen) te noemen op andere BSD-systemen.
Opmerkingen
- ik heb het opgelost. Blijkbaar is het geïnstalleerd in
usr/local/Cellar/gnu-sed/4.4/bin
. Ik voegde toe aan het pad. Toch had ik graag gsed willen gebruiken in plaats van te veranderen wat mijn werkelijke sed deed. - @IshanSrivastava I ' m geen Homebrew-gebruiker, maar zou geen ' Als u installeert zonder
--with-default-names
kunt u GNU Sed gebruiken alsgsed
? - ik heb het geïnstalleerd met standaardnamen. Ik snap je eindelijk. Sorry voor de moeite. maar waarom werd het geïnstalleerd op zon onhandig pad als het mijne?
- @IshanSrivastava Wat informatie hier: rkulla.blogspot.se/2014/03/the -path-to-homebrew.html