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

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *