Estou usando meu zsh. Não consigo usar alguns comandos que poderia fazer no ubuntu, por exemplo .. \ s em expressões regulares. Eu instalei o home-brew e depois brew install gnu-sed --default-names
, mas ainda não consigo usar o comando sed. Minha variável $ PATH está um pouco confusa e não tenho certeza de como corrigi-la.
/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
O que devo fazer para poder usar todos os comandos GNU sem complicações no meu Mac? Forneça também a lista de comandos nos quais devo usar o comando gnu em vez do padrão, por exemplo, gsed
em vez de sed
etc.
Comentários
- Relacionados: stackoverflow.com/questions/30003570 / …
Resposta
Conforme mencionado em outra pergunta , se estiver instalando GNU sed
usando Homebrew com --with-default-names
, então ele é instalado como /usr/local/bin/sed
.
Sem --with-default-names
, ele será instalado como /usr/local/bin/gsed
.
Se instalado como sed
, então depende do seu $PATH
o que sed
o binário é selecionado quando você executa sed
. Se seu $PATH
for como você descreveu, então GNU sed
deve ter precedência sobre o macOS nativo sed
.
Observe que o shell pode ter armazenado em cache a localização do comando sed
se você já tiver usado o comando na linha de comando anteriormente no mesmo sessão de shell. Você pode então usar rehash
em zsh
para limpar o cache ou abrir um novo terminal.
Quando um sistema fornece uma implementação sed
nativa que não é GNU sed
, então geralmente é melhor instalar o GNU sed
como gsed
para não quebrar scripts existentes que dependem de comportamento específico para o sed
nativo. É por isso que o comportamento padrão do Homebrew no macOS é instalar o GNU sed
como gsed
. Esta também é a forma padrão de nomear GNU sed
(e ferramentas GNU em geral) em outros sistemas BSD.
Comentários
- eu resolvi. Aparentemente, ele foi instalado em
usr/local/Cellar/gnu-sed/4.4/bin
. Eu adicionei ao caminho. Mesmo assim, gostaria de usar o gsed em vez de alterar o que meu sed real fazia. - @IshanSrivastava Eu ' não sou um usuário Homebrew, mas não ' t instalar sem
--with-default-names
permite que você use GNU Sed comogsed
? - eu instalei com nomes padrão. eu finalmente entendi você. Desculpe o incómodo. mas por que ele foi instalado em um caminho tão estranho como o meu?
- @IshanSrivastava Algumas informações aqui: rkulla.blogspot.se/2014/03/the -path-to-homebrew.html