No Mac OS 10.10.3, instalei o gnu-sed digitando:
brew install gnu-sed --default-names
Quando eu digito novamente, recebo a mensagem:
gnu-sed-4.2.2 já instalado
No entanto, mesmo depois de reiniciar o sistema e reiniciar o Terminal, ainda não consigo usar a versão GNU do sed. Por exemplo:
echo a | sed ’s_A_X_i’
retorna: sinalizador incorreto no comando de substituição 'i'
O que devo fazer para que a versão GNU funcione? Aqui estão os caminhos em minha variável $ PATH.
/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin
Lamento se minha pergunta parece óbvia, mas estou aprendendo script de shell por conta própria e ainda não entendo muito bem como os programas UNIX são instalados. Qualquer ajuda para usar comandos compatíveis com GNU (neste caso, sed, mas logo vou precisar de outros também) no meu Mac sem causar danos ou desordem desnecessária seria muito apreciada.
brew
instalou o GNUsed
? Esse diretório está no seuPATH
? O que você ganha se digitarsed --version
? (BSDsed
irá reclamar; GNUsed
irá relatar suas informações de versão.) Até que você tenha obrew
diretório em seu PATH antes de/usr/bin
você aprender a usar o caminho absoluto para GNUsed
, você não estará executando o GNUsed
. Tenha cuidado com as aspas também.’
é uma citação de processamento de texto, ao contrário'
.Respostas:
Nota (2019):
A
--with-default-names
opção foi removida desde janeiro de 2019, então agora essa opção não está mais disponível.Ao instalar, o Homebrew instrui sobre como adaptar o caminho, se quiser usar o sed sem o
g
prefixo.Você já tem o gnu-sed instalado sem a
--with-default-names
opção.--with-default-names
opção de instalaçãosed
em/usr/local/bin/
gsed
Então, no seu caso, o que você precisa fazer é:
Atualize o caminho se necessário ...
ou use
gsed
como outros sugeriram.fonte
Quando você instala a versão GNU do
sed
para Mac OS X usando:O programa que você usa é
gsed
.Então, por exemplo:
Além disso, para elogiar o uso das ferramentas de comando GNU no Mac OS X, há uma boa postagem no blog aqui para obter as ferramentas do Linux:
Instale e use as ferramentas de linha de comando GNU no Mac OS / OS X
fonte
O
sed
que vem com o OS X está em/usr/bin
.o
sed
quehomebrew
instala está em/usr/local/bin
.Se preferir usar
homebrew
um, você tem duas opções:Opção 1
Toda vez que você quiser usar
homebrew
sed
, digiteou, de preferência
opção 2
Avance
/usr/local/bin/
(ou seja, antes)/usr/bin
em seu PATH em seu perfil de login, assimfonte
$ brew install gnu-sed
Com estes dois comandos o gnu-sed funciona corretamente
fonte
Se você precisa usar o comando gnu-sed com seus nomes normais, você pode adicionar um diretório "gnubin" ao seu PATH a partir do seu bashrc. Basta usar o seguinte comando em seu bash ou terminal.
fonte
--with-default-names
não funcionou para mim no Mac OS X 10.14.2 então eu criei um link simbólico chamadosed
agsed
maior no$PATH
Eu também criei um link simbólico nomeado
sed.1
para a página degsed.1
manual superior no$MANPATH
paraman
acessar a página degsed
manual ao invés da página desed
manual padrãofonte
alias sed=gsed
.