вторник, 30 декабря 2014 г.

суббота, 6 декабря 2014 г.

sed и экранирование амперсанда

Что то совсем на ночь глядя голова не соображает.
Есть строка и не одна, а пару тысяч, её нужно положить в файл sql для последующей отправки в БД. Из которой в дальнейшем данные будут выводиться на html-страницу. Строки естественно содержат в себе всякий мусор от которого нужно избавляться. Самое основное, конечно же замена апострофа, ибо у запроса вид:
INSERT INTO \`bd\`.\`products\` (\`id\`, \`model\`, \`description\`) VALUES ('NULL', '2', 'тут строка');
И апострофы всё испортят, их надо заменить на спецсимвол ' и вот беда, sed воспринимает & как часть регулярного выражения.
Минут 30 искал как это сделать, т.к. \ не помогал. В итоге, оказалось всё просто, заменил
sed s/\'/\&\#39\;/g
на
sed "s/'/\'/g"
Чего тупил, не понятно.