заменить строку, чтобы добавить текст - PullRequest
0 голосов
/ 20 апреля 2010

Файл резервной копии дампа 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;

Ответы [ 3 ]

0 голосов
/ 20 апреля 2010
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'

Это правильный способ сделать это?

0 голосов
/ 20 апреля 2010
#!/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
0 голосов
/ 20 апреля 2010
  head -40 backup20-Apr-2010-07-32.sql |
  grep 'CHANGE MASTER TO ' |
  perl -lpe "s/-- CHANGE MASTER TO/CHANGE MASTER TO MASTER_HOST='111.222.333.444', MASTER_USER='slave_user', MASTER_PASSWORD='slave_user',/"
...