sed command is throwing error : char 80: unknown command: `*'
sed command is throwing error : char 80: unknown command: `*'
我正在尝试使用 sed 命令替换 属性 文件中的字符串。
属性 文件包含以下条目
com.rs.TestScopeService.resourceScopesA./**={TestAPI}
我想用以下字符串替换此条目
#com.rs.TestScopeService.resourceScopesB./**={TestAPI}
我的 sed 命令是 --
sed -i '/com.rs.TestScopeService.resourceScopesA./**={TestAPI}/c\#com.rs.TestScopeService.resourceScopesB./**={TestAPI}' /Users/Desktop/test.properties
以上 cmd 抛出错误:sed: -e expression #1, char 80: unknown command: `*'
.
请帮助我更正命令以避免错误。
谢谢!
您可以通过在每个 *
之前添加反斜杠来解决 *
问题。这样做:
#!/bin/bash
originalstring="com.rs.TestScopeService.resourceScopesA./**={TestAPI}"
echo "$originalstring" | sed 's%^\(com\.rs\.TestScopeService\.resourceScopes\)A\(\./\*\*={TestAPI}\)$%#B%'
- 我使用字符
%
作为 sed
s
分隔符。
- 任何用作分隔符或运算符的字符
sed
都必须加上反斜杠,以让 sed
知道将其视为文本。这里,.
,*
不得不。
- 相反,反斜杠括号,这样
sed
就会知道它们是用于分组,而不是匹配。
^
: 开始于...
$
: 结束于...
</code> 和 <code>
用于构建结果字符串。 </code>是第一个括号(<code>com\.rs\.TestScopeService\.resourceScopes
)的内容,</code>第二个(<code>\./\*\*={TestAPI}
).
我正在尝试使用 sed 命令替换 属性 文件中的字符串。
属性 文件包含以下条目
com.rs.TestScopeService.resourceScopesA./**={TestAPI}
我想用以下字符串替换此条目
#com.rs.TestScopeService.resourceScopesB./**={TestAPI}
我的 sed 命令是 --
sed -i '/com.rs.TestScopeService.resourceScopesA./**={TestAPI}/c\#com.rs.TestScopeService.resourceScopesB./**={TestAPI}' /Users/Desktop/test.properties
以上 cmd 抛出错误:sed: -e expression #1, char 80: unknown command: `*'
.
请帮助我更正命令以避免错误。 谢谢!
您可以通过在每个 *
之前添加反斜杠来解决 *
问题。这样做:
#!/bin/bash
originalstring="com.rs.TestScopeService.resourceScopesA./**={TestAPI}"
echo "$originalstring" | sed 's%^\(com\.rs\.TestScopeService\.resourceScopes\)A\(\./\*\*={TestAPI}\)$%#B%'
- 我使用字符
%
作为sed
s
分隔符。 - 任何用作分隔符或运算符的字符
sed
都必须加上反斜杠,以让sed
知道将其视为文本。这里,.
,*
不得不。 - 相反,反斜杠括号,这样
sed
就会知道它们是用于分组,而不是匹配。 ^
: 开始于...$
: 结束于...</code> 和 <code>
用于构建结果字符串。</code>是第一个括号(<code>com\.rs\.TestScopeService\.resourceScopes
)的内容,</code>第二个(<code>\./\*\*={TestAPI}
).