【发布时间】:2020-12-16 20:54:11
【问题描述】:
我正在开展一个项目,以从 Linux 服务器上的日志文件中提取特定的文本块。我遇到的问题是第二次出现文本块。我们的系统运行一个校正程序并根据需要更改数字,因此第一个块具有未校正的值,而我真正想要的第二个块具有校正值。
请参阅下面两个文本块的示例。请注意,“Recs”和“Count”数字在第二个块上减 1(用于更正值)。此外,第一个和第二个(所需的)块由随机的命令输出行分隔,每个月都会发生变化。
使用 awk,我能够使用此命令提取第一个块,该命令匹配“报告输出摘要”和“所有部门总计”之间的所有内容:
awk '/Report output summary/{prnt=1} prnt{print} /Grand Total All Depts/{exit}'
Report output summary:
Department Type Recs Count Amount
---------------------------------- ------ ------ ------ ---------------
002 FACILITIES Check 4 2 560,819.78
005 HUMAN RESOURCES Check 13 8 10,688.84
010 TECHNOLOGY Check 94 25 78,211.24
050 TRANSPORTATION Check 73 27 120,350.32
Grand Total All Depts Check 906 385 80,365.69
Random lines of text1
Random lines of text2
Random lines of text2
Random lines of text2
Random lines of text2
Random lines of text2
Report output summary:
Department Type Recs Count Amount
---------------------------------- ------ ------ ------ ---------------
002 FACILITIES Check 4 2 560,819.78
005 HUMAN RESOURCES Check 13 8 10,688.84
010 TECHNOLOGY Check 94 25 78,211.24
050 TRANSPORTATION Check 72 26 90,222.15
Grand Total All Depts Check 906 385 80,365.69
有人可以通过提供有关如何仅返回第二个文本块的提示来使我免于进一步的痛苦。 (不要注意不正确的总计,因为我将数字更改为示例的假值。) 感谢您的帮助!
【问题讨论】: