У меня есть запрос, который приведет к следующим даннымЕсли регулярное выражение будет неправильно
Запрос:
db2 "select RTRIM(substr(A.TBSP_NAME,1,30)),A.TBSP_FREE_PAGES as FREE,B.CONTAINER_NAME as CON_PATH from SYSIBMADM.TBSP_UTILIZATION A ,SYSIBMADM.CONTAINER_UTILIZATION B where A.TBSP_ID=B.TBSP_ID and A.TBSP_AUTO_RESIZE_ENABLED=0 with UR"
Результат:
1 FREE CON_PATH
------------------------------ -------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
USERSPACE1 14736 /adrst/bdts/userspc_container
USERSPACE1 14736 /adrst/bdts/userspc_container1
MASTER 3472 /adrst/bdts/master_container
TRANS_DATA 1200 /adrst/bdts/trans_data_container
MASTER_INDEX 1840 /adrst/bdts/master_index_container
TRANSACTION_INDEX 960 /adrst/bdts/transaction_index_container
TEMP_SYS 2192 /adrst/bdts/temp_sys_container
AUDIT_DATA 3360 /adrst/bdts/audit_data_container
TEMP_USR 2672 /adrst/bdts/temp_usr_container
TSASNCA 2840 /home/db2inst1/db2inst1/NODE0000/SQL00002/TSASNCA
TSASNUOW 2880 /home/db2inst1/db2inst1/NODE0000/SQL00002/TSASNUOW
TSASNAA 3712 /home/db2inst1/db2inst1/NODE0000/SQL00002/TSASNAA
TSCDADDRESSMASTER 2048 /home/db2inst1/db2inst1/NODE0000/SQL00002/CDADDRESSMASTER
13 record(s) selected.
Теперь им пишет сценарий, который принимает столбец 2 и сравнивает, если < 1000, то мы указываем col1 и col2 в печати
Таким образом, сценарий я написал,
#!/usr/bin/perl
use strict;
use warnings;
`db2 "connect to awdrt"`;
my @tbsp= grep /([a-zA-Z_]*)\s*([0-9]*)\s*([a-zA-Z_]*)/,`db2 "select RTRIM(substr(A.TBSP_NAME,1,30)),A.TBSP_FREE_PAGES as FREE,B.CONTAINER_NAME as CON_PATH from SYSIBMADM.TBSP_UTILIZATION A ,SYSIBMADM.CONTAINER_UTILIZATION B where A.TBSP_ID=B.TBSP_ID and A.TBSP_AUTO_RESIZE_ENABLED=0 with UR"`;
print "@tbsp";
Я дал распечатку, чтобы проверить я успешен в устранении «-----» 1'st строки и последнюю строку ... так что я могу раскол и инициализировать 3 переменных и сделать мой расчет в цикле Еогеасп, но где-то идет не так ........ Помощь ценится
Где вы проверяете '<1000'? –
Почему вы не используете [DBD :: DB2] (http://search.cpan.org/perldoc?DBD::DB2)? – mvp
Ваши регулярные выражения совпадают, пустые строки из-за всех этих звезд. Он также соответствует любой возможной строке. – perreal