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

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

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *