sed 's#dom:\' Id\'#this\.compsContainer\.custName\.setValue(custName)#g' ZWQZ_FJZW500008.js 为什么报错syntax error near unexpected token
时间: 2023-07-21 15:03:13 浏览: 100
这个错误通常是由于代码中的某些字符或语法不被 shell 所识别而导致的。根据你提供的命令来看,可能是因为 sed 命令中的字符串中包含了特殊字符,例如单引号、反斜杠等,导致命令无法正确执行。
你可以尝试使用双引号来包含 sed 命令中的字符串,例如:
```
sed "s#dom:' Id'#this.compsContainer.custName.setValue(custName)#g" ZWQZ_FJZW500008.js
```
另外,需要注意的是,如果你要在 sed 命令中替换的字符串中包含了斜杠(/),则需要使用其他字符来代替 sed 命令中的分隔符,例如上面的命令中就使用了 # 来代替 /。
相关问题
sed -e ':a;N;$!ba;s#vars\*IDs\*=s\*news\*PJF\.ui\.textfield(\{s\*\ns\*dom;s\*' Id's\*\ns\*\});#this\.compsContainer\.custName\.setValue(custName)#g’ZWQZ_FJZW500008.js 执行报错Invalid content of \{\}
这个 sed 命令可能有一些语法错误或者参数不正确,导致执行时出现了报错。具体来说,可能是下面这一段代码中的问题:
```
sed -e ':a;N;$!ba;s#vars\*IDs\*=s\*news\*PJF\.ui\.textfield(\{s\*\ns\*dom;s\*' Id's\*\ns\*\});#this\.compsContainer\.custName\.setValue(custName)#g’ZWQZ_FJZW500008.js
```
首先,命令中使用了单引号和双引号混合的方式来引用字符串,这可能会导致字符串的截取出现问题。建议将整个 sed 命令放在单引号内,避免引号的混淆。
其次,可能是命令中使用的正则表达式出现了问题。需要检查一下这个正则表达式是否符合预期的匹配规则。
sed替换a.js中的语句var id= pjf.ui.textfield{dom:id};为var id = id
可以使用sed命令实现该替换操作,命令如下:
```
sed -i 's/var id= pjf\.ui\.textfield{dom:id};/var id = id;/g' a.js
```
解释:
- `-i` 表示直接修改源文件,而不是输出到标准输出。
- `'s/var id= pjf\.ui\.textfield{dom:id};/var id = id;/g'` 是用于替换的模式,其中 `s` 表示替换操作,`g` 表示全局替换,即一行可能有多个需要替换的内容。
- `a.js` 是需要进行替换的文件名。
注意事项:
- 由于 `{` 和 `}` 在正则表达式中有特殊含义,因此需要使用 `\` 进行转义,即 `\{` 和 `\}`。
- `.` 也是正则表达式中的特殊字符,需要使用 `\.` 进行转义。
阅读全文