У меня есть такой файл
выберите b.id в качестве cli_id, b.login в качестве cli_login, b.pname в качестве cli_name,
b.cname как cli_company, b.phone как cli_phone, b.email как cli_email,
(выберите (значение / 1048576) из Пределов, где limit_name = 'disk_space'
и id = b.limits_id) как Client_Package, b.cr_date, (выберите
FROM_UNIXTIME (значение, "% Y-% m-% d") из пределов, где
limit_name = 'expiration' и id = b.limits_id) как Client_expire,
Если (b.status = 0, «Active», «Inactive») как Cli_Status, a.name как dom_name,
Если (a.status = 0, 'Active', 'Inactive') как Dom_Package, a.cr_date как
dom_create, (выберите FROM_UNIXTIME (значение, "% Y-% m-% d") из пределов, где
limit_name = 'expiration' и id = a.limits_id) как dom_expire, (выберите
(значение / 1048576) из пределов, где limit_name = 'disk_space' и
id = a.limits_id) как Dom_Package, round ((a.real_size / 1048576)) как
Dom_usage из доменов a, клиенты b, где (выберите
FROM_UNIXTIME (значение, "% Y-% m-% d") из пределов, где
limit_name = 'expiration' и id = a.limits_id и
(FROM_UNIXTIME (значение, «% Y-% m-% d») между «2011-08-01» и
'2011-12-01')) и a.cl_id = b.id группа по a.id;
все это входит в одну строку
тем, что я хочу заменить только часть даты в этом формате
между «2011-08-01» и «2011-12-01»
Сценарий запускается каждую пятницу, предположим, если я запускаю его на 10-м месяце, значит.
скрипт должен изменить значение в файле следующим образом
между «2011-09-01» и «2012-01-01»
каждый раз, когда нужно изменить только месяц, в этом формате
между «текущий месяц -1 месяц» и «текущий месяц + 3 месяца»
sed -i 's/between '2011-08-01' and '2011-12-01'/'between '$(date --date="- 1 month" +%Y-%m)-01' and '$(date --date="+ 3 months" +%Y-%m)-01'/g file1
в этом коде я пытаюсь найти и заменить
но это показывает эту ошибку
sed: -e выражение # 1, символ 44: неопределенная команда `s '
Какую ошибку я могу объяснить? 1 1038 *