示例场景如下:
shell中获取某一bin的路径(如ctags),并将其写入到某一配置文件(如.vimrc)中。
首先
ctags_bin=`which ctags`
获取bin的路径,然后插入到配置文件的某一行
sed -i '' 's#let Tlist_Ctags_Cmd.*#let Tlist_Ctags_Cmd = '"\'${ctags_bin}\'"'#g' ~/.vimrc
这里面注意如下:
其一
sed默认替换语法为: 将aaa替换为bbb
sed -i "s/aaa/bbb/g"
但是由于路径中的/和sed原本的分隔符重复,所以替换为#
其二
mac下运行时,需要在sed -i后面加一个''
其三
引入变量时,如${ctags_bin}需要使用双引号,也就是普通语句用'',变量两边用"",如果写入结果时变量两边需要有单引号,则记得加转义符:
"\'${ctags_bin}\'"
其四
为了替换某一整行,所以在aaa的位置使用正则.*来匹配某一行剩下的内容

本文介绍如何在Shell中使用`which`命令获取特定bin(如ctags)的路径,并利用`sed`命令将该路径写入指定配置文件(如.vimrc)。详细解释了在mac环境下使用`sed`进行替换的特殊注意事项,包括分隔符的选择、变量引用的正确语法以及正则表达式的应用。

6198

被折叠的 条评论
为什么被折叠?



