如何将给定文件拆分为两个不同的文件结果代码和警告代码。下面给出的是单个文本文件,我想将其拆分为两个文件,因为我有更多的文件处于这种情况下要拆分。
结果代码:
0 - SYS_OK - "Ok"
1 - SYS_ERROR_E - "System Error"
1001 - MVE_SYS_E - "MTE System Error"
1002 - MVE_COMMAND_SYNTAX_ERROR_E - "Command Syntax is wrong"
警告代码:
0 - SYS_WARN_W - "System Warning"
100001 - MVE_SYS_W - "MVE System Warning"
200001 - SLEA_SYS_W - "SLEA System Warning"
200002 - SLEA_INCOMPLETE_SCRIPTED_OVERRIDE_COMMAND_W - "One or more of the entered scripted override commands has missing mandatory parameters"
300001 - L1_SYS_W - "L1 System Warning"
答案 0 :(得分:1)
嗯,乍一看,区别似乎是“警告”都包含字符序列_W -
而任何不包含“结果”的字符序列。你注意到了吗?
awk '/_W -/{print >"warnings";next}{print >"results"}'
答案 1 :(得分:0)
这是一个python解决方案: 我假设您有警告代码列表。
import re
warnings = open(r'warning-codes.txt');
warn_codes =[]
for line in warnings:
m = re.search(r'(\d+) .*',line);
if(m):
warn_codes.append(m.groups(1));
ow = open('output-warnings.txt','w')
ors = open('output-results.txt','w')
log_file = open(r'log.txt');
for line in log_file:
m = re.search(r'(\d+) .*',line);
if(m and (m.groups(1) in warn_codes)):
ow.write(line+'\n');
elif(m):
ors.write(line+'\n');
else:
print("none");
ow.close()
ors.close()