Mac下的sed命令

lz最近在学习sed命令,此命令非常好用,是针对文本中的每一行而言的,可以和awk对比,awk是每一列。但是因为mac系统用的是原生的bsd系列,而一般的linux系统用的是gnu系统,所以两者在某些命令中还是有区别的,此博客就是来研究下具体sed命令在mac和linux系统的一些区别。

1、在某一行下插入一行新的

一般在linux下,采用的是 sed "$line a\\(多一个\,用来防止转义) $value" $filename    是在同一行完成的

而在mac系统中,则要这样写

sed "$line a\ (在\后要加一个空格,然后另起一行,再写需要添加的那一行新的)

>$value(需要添加新一行的内容)

>" $filename(文件名)

也就是在mac系统中,都需要另起一行再重新写,而不是像在linux系统中,直接跟在sed命令的那一行后面来写。

另外,-i是在某一行之前插入,原理和-a一样的。即在mac中,应该这样用:

sed "$line i\

>$value

>" $filename

上述是在mac自带的sed命令,因为其是基于bsd,所以与常用的gnu不一样,所以最好还是能够使用gnu下的sed,那么对于mac,就需要通过命令行来安装gnu-sed,具体安装过程如下所示:

1.brew install gnu-sed --with-default-names  

         //注意,命令行之行此句时,要在用户权限下,不要在root下,因为在root下,会提示不安全,这里主要用到homebrew工具
2.vi ~/.zshrc
export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
3.source ~/.zshrc 或者新开窗口,让设置生效

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值