Нужна помощь с скриптом bash. Мы модифицируем нашу структуру базы данных, проблема в том, что у нас есть много живых сайтов, у которых есть предварительно написанные запросы, ссылающиеся на текущую структуру базы данных. Мне нужно найти все наши скрипты со ссылками на таблицы MySQL. Вот то, что я начал:Использование grep для поиска динамического текста
grep -ir 'from' /var/www/sites/inspection.certifymyshop.com/ > resultsList.txt
Я пытаюсь Grep через наши скрипты рекурсивно и экспортировать все имена таблиц, найденные в текстовый файл, мы можем использовать «-> от» и «-> присоединиться к» префиксы чтобы помочь нам:
->from('databaseName.table_name dtn') // dtn = table alias
ИЛИ
->join('databaseName.table_name dtn') // dtn = table alias
Мне нужно найти в пределах одинарные кавычки (т.е. databaseName.table_name) имя таблицы базы данных и. Мне также нужно указать имя файла, которое было найдено внизу или рядом с таким же совпадением:
someDatabaseName.someTableName | /var/www/sites/blah.com/index.php | линия 36
Просто, чтобы сделать его более ясным: вы хотите получить все 'databaseName.table_name dtn' из линий, как' -> из («databaseName.table_name») д.т.н. // ЦТС = таблица alias' и список они похожи на 'databaseName.table_n ame dtn | source_file | line_number', правильно? – Rubens
что-либо внутри этих кавычек будет динамическим, а псевдоним «// dtn = table» - это просто комментарий, который я сделал для вашей информации, которая не входит в код. Таким образом, это будет -> from ('databaseName.table_name dtn') и список, как вы упомянули. – user2019528
Думаю, я бы сделал что-то очень близкое к тому, что @sputnick указал в его ответе. – Rubens