猫myfile.sql,除去多余的空间
DELIMITER $$
USE `AA4`$$
DROP TRIGGER /*!50032 IF EXISTS */ `AT_Card_INSERT_Trigger`$$
CREATE
/*!50017 DEFINER='root'@'%' */
TRIGGER `AT_Card_INSERT_Trigger` AFTER INSERT ON `card`
FOR EACH ROW BEGIN
下按预期工作,并删除定义者条款。
sed -e 's/DEFINER=[^*]*\*/\*/' myfile.sql
但它不适用于符号之前或之后的空格。对于例如如果我有这样一行...
/*!50017 DEFINER = 'root'@'%' */
然后,我需要一个sed声明是这样的......
sed -e 's/DEFINER\ =\ [^*]*\*/\*/' myfile.sql
但也有2个possibilites与空间(没有空间之前,没有空间之后)。 “=”之前或之后可能有超过1个空格也是可能的。 我该如何处理这一切?
单元素类不是必需的,但它们是澄清单个空间的不错选择。 –
我习惯了括号,因为sed(至少在Mac上)没有'\ s',所以我经常写'[\ t]'或'[\ t \ n \ r]''。 :) –
总是有'perl -pe'或'sed -E'和'[[:space:]]''。 –