查找内容:
DEFINER=`abc_de43`@`123.234.56.345`
替换为:
DEFINER=`dbadmin`@`%`
CREATE ALGORITHM=UNDEFINED DEFINER=`abc_de43`@`123.234.56.345`
CREATE ALGORITHM=UNDEFINED DEFINER=`def_test_db`@`localhost`
CREATE ALGORITHM=UNDEFINED DEFINER=`admin_test_db`@`XXX.YYY.ZZZ.AAA`
CREATE ALGORITHM=UNDEFINED DEFINER=`d123_test_db`@`hostname`
CREATE ALGORITHM=UNDEFINED DEFINER=`def_344_db`@`12.123.23.123`
sed 's/`*`@`*`/`dbadmin`@`%`/g' /tmp/vwdefTest.txt
请帮忙,先谢谢了
如果您想具体匹配,您可能希望表达式包含
DEFINER=
。无论如何,您似乎缺少的是.
。 .
表示“任何字符”,*
表示该字符出现一个或多个。
尝试:
sed 's/DEFINER=`.*`@`.*`/DEFINER=`dbadmin`@`%`/g' /tmp/vwdefTest.txt
`* 只会匹配 1 个或多个
characters in regular expressions, remember that
*`,这里不是全局匹配。
您可以使用这个
sed
命令:
sed -E 's/(DEFINER=)`[^`]*`@`[^`]*/\1`dbadmin`@`%`/' file
CREATE ALGORITHM=UNDEFINED DEFINER=`dbadmin`@`%``
CREATE ALGORITHM=UNDEFINED DEFINER=`dbadmin`@`%``
CREATE ALGORITHM=UNDEFINED DEFINER=`dbadmin`@`%``
CREATE ALGORITHM=UNDEFINED DEFINER=`dbadmin`@`%``
CREATE ALGORITHM=UNDEFINED DEFINER=`dbadmin`@`%``
这里:
`[^`]*`
将匹配两侧用 ` 包裹的文本。
如果您想保存输入文件中的更改,请使用:
sed -i.bak -E 's/(DEFINER=)`[^`]*`@`[^`]*/\1`dbadmin`@`%`/' file
这与 MySQL 无关,请使用
sudo sed -i 's/DEFINER=
abc_de43@
123.234.56.345/DEFINER=
dbadmin@
%/'
astdbtemplate:~ # cat /tmp/vwdefTest.txt
CREATE ALGORITHM=UNDEFINED DEFINER=`abc_de43`@`123.234.56.345`
CREATE ALGORITHM=UNDEFINED DEFINER=`def_test_db`@`localhost`
CREATE ALGORITHM=UNDEFINED DEFINER=`admin_test_db`@`XXX.YYY.ZZZ.AAA`
CREATE ALGORITHM=UNDEFINED DEFINER=`d123_test_db`@`hostname`
CREATE ALGORITHM=UNDEFINED DEFINER=`def_344_db`@`12.123.23.123`
astdbtemplate:~ #
astdbtemplate:~ #
astdbtemplate:~ #
astdbtemplate:~ #
astdbtemplate:~ # sudo sed -i 's/DEFINER=`abc_de43`@`123.234.56.345`/DEFINER=`dbadmin`@`%`/' /tmp/vwdefTest.txt
astdbtemplate:~ #
astdbtemplate:~ # cat /tmp/vwdefTest.txt
CREATE ALGORITHM=UNDEFINED DEFINER=`dbadmin`@`%`
CREATE ALGORITHM=UNDEFINED DEFINER=`def_test_db`@`localhost`
CREATE ALGORITHM=UNDEFINED DEFINER=`admin_test_db`@`XXX.YYY.ZZZ.AAA`
CREATE ALGORITHM=UNDEFINED DEFINER=`d123_test_db`@`hostname`
CREATE ALGORITHM=UNDEFINED DEFINER=`def_344_db`@`12.123.23.123`