Sto usando oh my zsh. Non sono in grado di utilizzare alcuni comandi che potrei fare su Ubuntu per es. Nelle espressioni regolari. Ho installato home-brew e poi brew install gnu-sed --default-names
ma non riesco ancora a usare il comando sed. La mia variabile $ PATH è un po incasinata e non sono sicuro di come correggerla.
/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
Cosa devo fare per poter utilizzare tutti i comandi gnu senza problemi sul mio Mac? Inoltre, dammi lelenco dei comandi su cui devo usare il comando gnu invece del comando predefinito, ad esempio gsed
invece di sed
ecc.
Commenti
- Correlati: stackoverflow.com/questions/30003570 / …
Risposta
Come menzionato in unaltra domanda , se si installa GNU sed
utilizzando Homebrew con --with-default-names
, quindi viene installato come /usr/local/bin/sed
.
Senza --with-default-names
, verrà installato come /usr/local/bin/gsed
.
Se installato come sed
, dipende da $PATH
cosa sed
binario viene rilevato quando esegui sed
. Se il tuo $PATH
è quello che hai descritto, GNU sed
dovrebbe avere la precedenza sul macOS nativo sed
.
Nota che la shell potrebbe aver già memorizzato nella cache la posizione del comando sed
se hai già utilizzato il comando sulla riga di comando nello stesso sessione di shell. Puoi quindi utilizzare rehash
in zsh
per svuotare la cache o aprire un nuovo terminale.
Quando un sistema fornisce unimplementazione nativa sed
che non è GNU sed
, quindi spesso è meglio installare GNU sed
come gsed
per non interrompere gli script esistenti che si basano su comportamenti specifici del sed
nativo. Questo è il motivo per cui il comportamento predefinito con Homebrew su macOS è installare GNU sed
come gsed
. Questo è anche il modo predefinito per denominare GNU sed
(e gli strumenti GNU in generale) su altri sistemi BSD.
Commenti
- lho risolto. Apparentemente è stato installato in
usr/local/Cellar/gnu-sed/4.4/bin
. Ho aggiunto al percorso. Tuttavia mi sarebbe piaciuto usare gsed invece di cambiare ciò che faceva il mio attuale sed. - @IshanSrivastava Non ' non sono un utente Homebrew, ma ' l installazione senza
--with-default-names
consente di utilizzare GNU Sed comegsed
? - lho installato con i nomi predefiniti. finalmente ti capisco. Scusa per il disturbo. ma perché è stato installato in un percorso così scomodo come il mio?
- @IshanSrivastava Alcune informazioni qui: rkulla.blogspot.se/2014/03/the -path-to-homebrew.html