Command-Line
gsed:在帶有 Homebrew 的 macOS 上找不到命令
我正在使用哦我的 zsh。我無法使用一些我可以在 ubuntu 上執行的命令,例如。\s 在正則表達式中。我安裝了 home-brew,然後
brew install gnu-sed --default-names
仍然無法使用 sed 命令。我的 $PATH 變數有點亂,我不知道如何糾正它。/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
我應該怎麼做才能在我的 Mac 上輕鬆使用所有 gnu 命令?另外請提供我必須使用 gnu 命令而不是預設命令的命令列表,例如。
gsed
而不是sed
等
正如另一個問題中提到的
sed
,如果使用 Homebrew安裝 GNU--with-default-names
,那麼它將安裝為/usr/local/bin/sed
.如果沒有
--with-default-names
,它將被安裝為/usr/local/bin/gsed
.如果安裝為
sed
,那麼這取決於$PATH
您sed
執行時獲取的二進製文件sed
。如果您$PATH
是如您所描述的,那麼 GNUsed
應該優先於本機 macOSsed
。請注意,
sed
如果您之前在同一 shell 會話中在命令行上使用過該命令,那麼 shell 可能已經記憶體了該命令的位置。然後,您可以使用rehash
inzsh
清除該記憶體,或打開一個新終端。當系統提供非 GNU 的本機
sed
實現時,sed
通常最好安裝 GNUsed
,gsed
以免破壞依賴於本機特定行為的現有腳本sed
。這就是為什麼 macOS 上 Homebrew 的預設行為是將 GNU 安裝sed
為gsed
. 這也是sed
在其他 BSD 系統上命名 GNU(以及一般的 GNU 工具)的預設方式。