问题
- 工作用的电脑是mac
- 经常发现linux上常用的sed,grep命令用不起来,各种报错
- 后来查了一下发现mac里的sed和linux的不是一个版本的软件
Mac OS X uses BSD sed and not GNU sed. When you use a GNU sed extension with Mac OS X sed, you get different results, or failures. Classically, sed does not support numeric offsets, forwards or backwards. You’ll need to revise your script to work on Mac OS X.
解决
使用以下命令安装GNU命令套件:
brew install coreutils
使用以下命令安装gnu-sed:
brew install gnu-sed --with-default-names
以上命令安装的gnu套件的命令都是带有g前缀的
- gcat –> linux里的cat
- gsed –> linux里的sed
- ggrep –> linux里的grep
- gawk –> linux里的awk
- …
如果想直接代替,不输入g前缀则
vim .bash_profile
加上
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/coreutils/libexec/gnuman:$MANPATH"
然后source一下。
意外处理
- 如果在执行
brew install coreutils
遇到报错:Error: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins
- 执行:
sudo chown -R $(whoami) $(brew --prefix)/*
- 再
brew cleanup
下,即可
享受正常的grep sed awk 吧。mac自带的没法用
>> Home