У меня есть текстовый файл с более чем 200 именами таблиц. Пример как это

T_BCPCOMITEE_EA4
T_BCPEMERSIT_EA4
T_BCPROLE_EA4
T_BDR_AG_EA4
T_BDR_CRITERIA_EA4

Мне нужно взять имя таблицы и добавить оператор выбора, конечный результат должен быть похож на htis

--T_BCPCOMITEE_EA4
select * from T_BCPCOMITEE_EA4;
--T_BCPEMERSIT_EA4
select * from T_BCPEMERSIT_EA4;
--T_BCPROLE_EA4
select * from T_BCPROLE_EA4;
--T_BDR_AG_EA4
select * from T_BDR_AG_EA4;
--T_BDR_CRITERIA_EA4
select * from T_BDR_CRITERIA_EA4;

Есть ли способ, которым я могу автоматизировать эту задачу. Пожалуйста помоги. ТИА

1 ответ1

2

Самый простой способ сделать это - найти и заменить регулярное выражение.

Это можно сделать, либо перейдя в « Search на панели инструментов и затем выбрав « Replace... , либо с помощью комбинации клавиш CTRL + H.

Убедитесь , что у вас есть Regular expression , выбранное в правом нижнем углу и убедитесь , . matches newline не проверяется (это важно для регулярного выражения, чтобы работать как задумано).

ПРИМЕЧАНИЕ. Это решение регулярного выражения предполагает, что каждая строка имеет отдельное и полное имя таблицы (как, например, имена таблиц не разбиты на несколько строк, и каждая строка содержит только одно имя таблицы).

Поместите следующее в поле "Найти":

^(.*)

Поместите следующее в поле "Заменить":

--\1\nSELECT * FROM \1;

объяснение

Строка регулярного выражения может быть разбита следующим образом:

^ Является началом якоря строки и гарантирует, что регулярное выражение соответствует самому началу каждой строки. Это гарантирует, что он случайно не выберет дополнительные строки.

Группа (.*) Используется для сопоставления любого символа (.) Любое количество раз (*), а затем для того, чтобы сделать эти сопоставленные символы доступными для строки замены (()), используя формат заполнителя $x , где x - это номер группы (который увеличивается последовательно, где 1 - первый, 2 - второй и т. д.).

Строка замены может быть разбита следующим образом:

--\1 используется для печати двух литералов - символы, а затем все символы , которые были подобраны в регулярном выражении (The (.*) Которые вставляются вместо \1

\n используется для добавления новой строки в строку замены (может потребоваться использовать \r\n в зависимости от вашей операционной системы, но в настоящее время я предполагаю, что \n один будет работать).

SELECT * FROM \1; section используется для печати строки, как видно, за исключением того, что \1 заменяется на совпавшие символы, как и раньше (это будет имя таблицы).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .