Sed 替换该行以添加一些文本

Sed 替换该行以添加一些文本,sed,awk,Sed,Awk,MySQL转储备份文件有以下行 # head -40 backup20-Apr-2010-07-32.sql | grep 'CHANGE MASTER TO ' -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000068', MASTER_LOG_POS=176357756; a我需要用主主机、用户和密码等参数来完成语句 b我也需要删除评论- 这条线应该是这样的 CHANGE MASTER TO MASTER_HOST='111.222.333

MySQL转储备份文件有以下行

# head -40 backup20-Apr-2010-07-32.sql | grep 'CHANGE MASTER TO '
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000068', MASTER_LOG_POS=176357756;
a我需要用主主机、用户和密码等参数来完成语句

b我也需要删除评论-

这条线应该是这样的

CHANGE MASTER TO MASTER_HOST='111.222.333.444', MASTER_USER='slave_user', MASTER_PASSWORD='slave_user', MASTER_LOG_FILE='mysql-bin.000068', MASTER_LOG_POS=176357756;

这是正确的方法吗?

听起来不错。你被卡在哪里了?问题是单倒逗号没有被保留。正确的MASTER|u HOST='111.222.333.444'我得到的结果是MASTER|u HOST=111.222.333.444外部引号使用双引号:echo abc | sed s/b/'/或引号,并转义单引号:echo abc | sed's/b/'\/,谢谢。双引号,我会尽量记住的。
#!/bin/bash

s="MASTER_HOST='111.222.333.444', MASTER_USER='slave_user',"
awk -vs="$s" ' /-- CHANGE MASTER TO/{
  gsub("-- CHANGE MASTER TO","CHANGE MASTER TO "s)
}1 ' file >temp
mv temp file
head -40 ORS20-Apr-2010-07-32.sql | grep 'CHANGE MASTER TO ' | sed 's/CHANGE MASTER TO/CHANGE MASTER TO MASTER_HOST='111.222.333.444', MASTER_USER='slave_user', MASTER_PASSWORD='slave_user'/g' | sed 's/^--//g'
#!/bin/bash

s="MASTER_HOST='111.222.333.444', MASTER_USER='slave_user',"
awk -vs="$s" ' /-- CHANGE MASTER TO/{
  gsub("-- CHANGE MASTER TO","CHANGE MASTER TO "s)
}1 ' file >temp
mv temp file