Jag använder oh my zsh. Jag kan inte använda några kommandon som jag skulle kunna göra på ubuntu för t ex .. i reguljära uttryck. Jag installerade hembryggning och sedan brew install gnu-sed --default-names
men ändå kan jag inte använda sed-kommandot. Min $ PATH-variabel är lite trassig och jag är inte säker på hur jag ska korrigera den.
/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
Vad ska jag göra så att jag kan använda alla GNU-kommandon utan krångel på min Mac? Ge mig också listan med kommandon som jag måste använda gnu-kommandot istället för standard för t.ex. gsed
istället för sed
etc.
Kommentarer
- Relaterat: stackoverflow.com/questions/30003570 / …
Svar
Som nämnts i en annan fråga , om du installerar GNU sed
med Homebrew med --with-default-names
, sedan installeras den som /usr/local/bin/sed
.
Utan --with-default-names
installeras den som /usr/local/bin/gsed
.
Om det är installerat som sed
beror det på din $PATH
vad sed
binär blir plockad upp när du kör sed
. Om din $PATH
är som du har beskrivit, bör GNU sed
ha företräde framför den inbyggda macOS sed
.
Observera att skalet kan ha cachat platsen för kommandot sed
om du tidigare har använt kommandot på kommandoraden i samma skal session. Du kan sedan använda rehash
i zsh
för att rensa cachen eller öppna en ny terminal.
När ett system ger en naturlig sed
-implementering som inte är GNU sed
, då är det ofta bättre att installera GNU sed
som gsed
för att inte bryta befintliga skript som förlitar sig på beteende som är specifikt för det infödda sed
. Det är därför som standardbeteendet med Homebrew på macOS är att installera GNU sed
som gsed
. Detta är också standard sättet att namnge GNU sed
(och GNU-verktyg i allmänhet) på andra BSD-system.
Kommentarer
- jag löste det. Tydligen installerades den i
usr/local/Cellar/gnu-sed/4.4/bin
. Jag lade till vägen. Ändå skulle jag ha velat använda gsed istället för att ändra vad min faktiska sed gjorde. - @IshanSrivastava I ' utan Homebrew-användare, men skulle inte ' t att installera utan
--with-default-names
tillåter dig att använda GNU Sed somgsed
? - Jag installerade den med standardnamn. äntligen får jag dig. ledsen för besväret. men varför installerades den på en så besvärlig väg som min?
- @IshanSrivastava Lite info här: rkulla.blogspot.se/2014/03/the -path-to-homebrew.html