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

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 come gsed?
  • 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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *