原有的sed命令在linux下正常,但切换到mac下执行各种报错,查阅资料了解到
mac系统是原生于bds系统的,sed命令和gnu不同,区别如下:
1.替换文件内容----替换匹配到的下行将0修改为1
mac shell下:$sed -i '' '//{n;s/0/1/;}' //
2.追加内容到文件 i\是在某一行之前插入,操作和a\(某一行之后插入)一样。
linux下:$
- sed "$line a\\(多加一个\,防止后面的$value被转义)$value" $file
- sed "2 a\\xxx" //在第二行之后插入
mac shell下:
- sed "$line a\ (注意此处有空格,要在下一行添加文本)
- $value(如果想换行要把"写到下一行)
- " $file
例如:
$sed -i "" "/APP_BUNDLE_IDENTIFIER/ a\ //注意这里有空格
entitlements; //这样表示单独添加这一行,如果直接接下一行则源文件下一行也会接上的。
"