我正在尝试使用 sed
将表达式 'root'@'localhost'
替换为 'root'@'%'
没有成功。有人可以帮我执行命令吗?
我尝试了以下方法:
sed -i ’s#\’root\’@\’localhost\’#\’root\’@\’%\’#g’ xyz.sql
sed: -e expression #1, char 1: unknown command: `?'
sed -i -e ’s/localhost/%/g’ xyz_2616.sql
sed: -e expression #1, char 1: unknown command: `?'
最佳答案
首先,确保您使用的是单引号。 '
(又名 ’
或 unicode 8217)与 ASCII 字符 39,'
不同。
接下来,您无法在单引号内转义单引号。 Here's an answer我前段时间写过。
但是,您可以将单引号放在双引号内,或者将它们转义到单引号字符串之外。例如,以下任一方法都可能有效:
sed -e "s/'root'@'localhost'/'root'@'%'/g" file.sql
或
sed -e 's/'\''root'\''@'\''localhost'\''/'\''root'\''@'%'\''/g' file.sql
或者,您可以只替换您感兴趣的部分,相信它不会出现在同一行的其他地方:
sed -e '/root.@.localhost/s/localhost/%/' file.sql
关于linux - sed 命令将 'root' @'localhost' 替换为 'root' @'%',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38599391/