linux将查找的一行前面加#
sed的部分使用方法
sed中的编辑命令:
a:追加 向匹配行后面插入内容
c:更改 更改匹配行的内容
i:插入 向匹配行前插入内容
d:删除 删除匹配的内容
s:替换 替换掉匹配的内容

SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED='9d685-604b-11e9-9ebe-fa163e1a3084:1-12406,
9f657ca4-604b-11e9-a38b-fa163e4992cc:1-109499832';
用sed批量将多个sql文件中的这几行注释掉或者删除
/
/
两个这个组合代表多行注释可以注释掉多行
1.将匹配到的本行的最前面加个#
用法:sed -i '/xxx/ s/xxx/#\1/g'
#\1:格式代表将本行的第一个字符前面加#
^(.)$:格式代表匹配本行开始到结束至少一个到多个字符,【.】代表一到多个字符
例子:sed -i '/SQL_LOG_BIN/ s/^(.*)$/#\1/g' 11test.sql

2.将匹配到的本行的上面一行和下面一行加入注释
用法:sed -i '/xx/i#xxx/';sed -i '/xx/a#xxbb/'
i:匹配行上面一行输入
a:匹配行下面一行输入
例子:
sed -i '/GLOBAL.GTID_PURGED/i\/*' 11test.sql
sed -i '/9f657ca4-604b-11e9-a38b-fa163e4992cc/a*\/' 11test.sql

3.将匹配到的行直接删除掉
用法:sed -i '/xxx/d'
例子:
sed -i '/@@SESSION.SQL_LOG_BIN/d' 11test.sql ;
4.将匹配到的行以及所有后面的都删掉
用法:sed -i '/xxx/,$d'
例子:
sed -i '/SQL_LOG_BIN/,$d' 11test.sql
用的如下组合命令:
sed -i '/SQL_LOG_BIN/ s/^(.)$/#\1/g' 11test.sql;sed -i '/GLOBAL.GTID_PURGED/i\/*' 11test.sql;sed -i '/9f657ca4-604b-11e9-a38b-fa163e4992cc/a*\/' 11test.sql
执行结果:
#SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
#SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
#SET @@SESSION.SQL_LOG_BIN= 0;
/

SET @@GLOBAL.GTID_PURGED='9d685-604b-11e9-9ebe-fa163e1a3084:1-12406,
9f657ca4-604b-11e9-a38b-fa163e4992cc:1-109499832';
*/
gp-eeds-cms@% 更改为root@%的方法
#sed -i s/`gp-eeds-cms`\@`\%`/`root`\@`\%`/g eeds-cms.sql >/dev/null 2>&1