Używam oh my zsh. Nie jestem w stanie użyć niektórych poleceń, które mógłbym wykonać na Ubuntu np. W wyrażeniach regularnych. Zainstalowałem home-brew, a następnie brew install gnu-sed --default-names
, ale nadal nie mogę użyć polecenia sed. Moja zmienna $ PATH jest trochę pomieszana i nie wiem, jak to poprawić.
/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
Co mam zrobić, aby móc używać wszystkich poleceń gnu bez kłopotów na moim Macu? Proszę również o podanie listy poleceń, dla których muszę używać polecenia gnu zamiast domyślnego, np. gsed
zamiast sed
itp.
Komentarze
- Powiązane: stackoverflow.com/questions/30003570 / …
Odpowiedź
Jak wspomniano w innym pytaniu , jeśli instalujesz GNU sed
używając Homebrew z --with-default-names
, to jest instalowany jako /usr/local/bin/sed
.
Bez --with-default-names
zostanie zainstalowany jako /usr/local/bin/gsed
.
Jeśli jest zainstalowany jako sed
, to zależy od $PATH
co sed
plik binarny zostaje pobrany po wykonaniu sed
. Jeśli Twój $PATH
jest taki, jak opisano, to GNU sed
powinien mieć pierwszeństwo przed natywnym macOS sed
.
Zwróć uwagę, że powłoka mogła już buforować lokalizację polecenia sed
, jeśli wcześniej użyłeś polecenia z linii poleceń w tym samym sesja powłoki. Następnie możesz użyć rehash
w zsh
, aby wyczyścić pamięć podręczną lub otworzyć nowy terminal.
Gdy system zapewnia natywną sed
implementację, która nie jest GNU sed
, wtedy często lepiej jest zainstalować GNU sed
jako gsed
, aby nie przerywać istniejących skryptów w oparciu o zachowanie specyficzne dla natywnego sed
. Dlatego domyślnym zachowaniem w przypadku Homebrew na macOS jest zainstalowanie GNU sed
jako gsed
. Jest to również domyślny sposób nazywania GNU sed
(i ogólnie narzędzi GNU) w innych systemach BSD.
Komentarze
- rozwiązałem. Najwyraźniej został zainstalowany w
usr/local/Cellar/gnu-sed/4.4/bin
. Dodałem do ścieżki. Mimo to wolałbym użyć gsed zamiast zmieniać to, co zrobił mój rzeczywisty sed. - @IshanSrivastava I ' Nie mam użytkownika Homebrew, ale nie ' t instalacja bez
--with-default-names
pozwala używać GNU Sed jakogsed
? - zainstalowałem go z domyślnymi nazwami. w końcu cię rozumiem. przepraszam za problem. ale dlaczego został zainstalowany na tak niezręcznej ścieżce jak moja?
- @IshanSrivastava Trochę informacji tutaj: rkulla.blogspot.se/2014/03/the -path-to-homebrew.html