我需要编写一个Bash脚本来从输出文件中删除类似的行。 我的输出文件总是一样的。
第1行和第1行2应保留,其他类似于这两行的行需要删除。
1: </UsageData><?xml version="1.0" encoding="UTF-8"?>
2: <UsageData broadcastday="2016-03-16">
日期各不相同。
应该保留最后一行。 E.g。
</UsageData>
我是shell编程的新手,我无法弄清楚如何做到这一点。
以下是我的示例XML:
<?xml version="1.0" encoding="UTF-8"?> <UsageData broadcastday="2016-03-16"> <Hh hhID="48800301"> <Inst instID="000002B9"/> <Live> <Station>516</Station> <From>Wed Mar 16 2016 09:52:47 GMT+0000 (UTC)</From> <DurSec>58077</DurSec> <Viewer> <HhMem>569de65c9c3ab0cf7bfa2df2</HhMem> </Viewer> </Live> </Hh> <Hh hhID="46920403"> <Inst instID="000002A8"/> <Live> <Station>5000</Station> <From>Wed Mar 16 2016 12:42:17 GMT+0000 (UTC)</From> <DurSec>47908</DurSec> <Viewer> <HhMem>56caee95f915e09335fd976f</HhMem> </Viewer> </Live> </Hh> </UsageData><?xml version="1.0" encoding="UTF-8"?> <UsageData broadcastday="2016-03-16"> <Hh hhID="15260304"> <Inst instID="000000A5"/> <Live> <Station>5000</Station> <From>Wed Mar 16 2016 12:57:48 GMT+0000 (UTC)</From> <DurSec>28814</DurSec> <Viewer> <HhMem>565f181dd830d3cc7057c0b9</HhMem> </Viewer> </Live> </Hh> </UsageData><?xml version="1.0" encoding="UTF-8"?> <UsageData broadcastday="2016-03-16"> <Hh hhID="50100501"> <Inst instID="0000022D"/> <Live> <Station>560</Station> <From>Wed Mar 16 2016 14:21:19 GMT+0000 (UTC)</From> <DurSec>41967</DurSec> <Viewer> <HhMem>56c4412de6a8ff4da18fd4ae</HhMem> <HhMem>56c4412de6a8ff4da18fd4cb</HhMem> </Viewer> </Live> </Hh> </UsageData><?xml version="1.0" encoding="UTF-8"?> <UsageData broadcastday="2016-03-16"> <Hh hhID="36110404"> <Inst instID="00000104"/> <Live> <Station>545</Station> <From>Wed Mar 16 2016 15:01:04 GMT+0000 (UTC)</From> <DurSec>671</DurSec> <Viewer> <HhMem>568ce8acbd0e486a951d41ce</HhMem> <HhMem>568ce8acbd0e486a951d41dc</HhMem> <HhMem>568ce8acbd0e486a951d41c5</HhMem> </Viewer> </Live> </Hh> </UsageData>
答案 0 :(得分:0)
我用非常简单的方法解决了我的问题。
awk&#39; /&lt; / UsageData&gt;&lt; \?xml version =&#34; 1.0&#34;编码=&#34; UTF-8&#34; \&GT; / {函数getline;下一个} 1&#39;文件