我有一个文件 source.txt,如下所示:
Executing resource: L:\Core\SQL\smpks_fcj_csdovdmt_addon.sql
Failed to execute:
Executing resource: L:\LC\SQL\lcpks_lcdtronl_utils.sql
Executing resource: L:\LS\SQL\cspks_adhoc_charge_sch.sql
Failed to execute:
SHO ERR
Executing resource: L:\LS\SQL\gwpks_ls_adhocsch_operations.sql
Executing resource: L:\LS\SQL\lnpks_synd_services.sql
Failed to execute:
Executing resource: L:\LS\SQL\lspks_facility_contracts.sql
Executing resource: L:\LS\SQL\lspks_fcj_lsdpxlog.sql
Executing resource: L:\LS\SQL\lspks_lsdprmnt_kernel.sql
Failed to execute:
sho err;
从这个文件中,我需要获取“执行失败:”字符串前面的行,并将其放入新文件 result.txt。还有一个条件,如果“执行失败:”后跟“sho err:”或“SHO ERR”,我不需要该文件在结果中。上述文件的输出应该是:
Executing resource: L:\Core\SQL\smpks_fcj_csdovdmt_addon.sql
Executing resource: L:\LS\SQL\lnpks_synd_services.sql
请帮忙。Perl 脚本或批处理文件或 Ant 脚本都可以。
如果我得到一个选项,如果“Sho err”在那里,删除前一行,没关系。