Обходной путь на 2020 год
Мы знаем, что sed в Mac OS - это sed POSIX, который не может использовать многие параметры. С другой стороны, GNU sed очень удобен. Например, GNU sed интерпретирует escape-последовательности, такие как \t
, \n
, \001
, \x01
, \w
и \b
. Sed OSX и POSIX sed интерпретируют только \n
(но не в заменяющей части s
). См. Различия между sed в Mac OSX и другими« стандартными sed?» для более подробной информации.
Другое дело, что опция --with-default-names
удалена с января 2019 года, поэтому теперь мы не можем использовать brew install gnu-sed --with-default-names
для прямой замены sed.
В этом посте мы заменим sed для OSX на GNU sed и установим его по умолчанию.
Установить
Сначала мы подтверждаем путь к sed и устанавливаем GNU sed с помощью brew.
$ which sed
/usr/bin/sed
$ brew install gnu-sed
Затем мы используем brew info
, чтобы увидеть информацию о GNU sed.
$ brew info gnu-sed ... GNU "sed" has been installed as "gsed". If you need to use it as "sed", you can add a "gnubin" directory to your PATH from your bashrc like: PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH" ...
Мы должны увидеть PATH
в консоли. Далее мы добавляем его в пути.
$ export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
Наконец, мы подтверждаем путь sed.
$ which sed /usr/local/opt/gnu-sed/libexec/gnubin/sed $ sed Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... ... ... GNU sed home page: <https://www.gnu.org/software/sed/>. General help using GNU software: <https://www.gnu.org/gethelp/>.
Теперь мы можем использовать GNU sed, просто набрав sed
.
Просмотрите другие мои сообщения на Medium с категориальным представлением!
GitHub: BrambleXu
LinkedIn: Xu Liang
Блог: bramblexu.com