我一直在尝试替换包含以下几行的某个配置文件:
exports.config = {
uncomment in case of directConnect = false
seleniumAddress: 'http://localhost:4444/wd/hub',
//===run only one spec===
specs: ['specs/login.js'],
...
我想用 specs:['specs / register.js'] 替换 specs:['specs / login.js'] 行
我尝试了很多不同的方法,但是它们都没有影响到当前行。它始终保持不变。这是我尝试过的几件事。
sudo sed -i -e "s/specs: ['specs\/login.js']/specs: ['specs\/register.js']/g" conf.js
该行保持不变。
line_old='specs: [\'specs\/login.js\']'
line_new='specs: [\'specs\/register.js\']'
sed -i -e "s%$line_old%$line_new%g" conf.js
但是它仍然没有用。有什么想法吗?
答案 0 :(得分:1)
尝试:
$ sed -e "s/specs: \['specs\/login.js'\]/specs: ['specs\/register.js']/g" conf.js
exports.config = {
uncomment in case of directConnect = false
seleniumAddress: 'http://localhost:4444/wd/hub',
//===run only one spec===
specs: ['specs/register.js'],
...
问题在于[
和]
是正则表达式有效字符。 [
引入了一个字符类。您想要[
作为文字字符。达到此目的的方法是使用[
之类的反斜杠转义\[
。 ]
也是如此。