我有这个文本文件
tittleofthis123
<Bunlde ver=5.0>
<Packages>
<Package Type="app" FileName="Package_ARM64_beta.msix" Offset="79" Size="5791033">
<Resources>
rescode11
</Resources>
<b4:Dependencies>
depcode12
</b4:Dependencies>
</Package>
<Package Type="app" FileName="Package_x64_beta.msix" Offset="580113" Size="7195285">
<Resources>
rescode21
rescode22
</Resources>
</Package>
<Package Type="res" FileName="Package_lang-cy.msix" Offset="579" Size="15">
<Resources>
rescode31
</Resources>
</Package>
<Package Type="res" FileName="Package_lang-af.msix" Offset="5791" Size="1578">
<Resources>
rescode41
</Resources>
</Package>
</Packages>
</Bundle>
我需要输出
tittleofthis123
<Bunlde ver=5.0>
<Packages>
<Package Type="app" FileName="Package_x64_beta.msix" Offset="580113" Size="7195285">
<Resources>
rescode21
rescode22
</Resources>
</Package>
<Package Type="res" FileName="Package_lang-af.msix" Offset="5791" Size="1578">
<Resources>
rescode41
</Resources>
</Package>
</Packages>
</Bundle>
我试过这个
pcre2grep -M -v 'ARM64.*(\n|.)*</Package>|lang-cy.*(\n|.)*</Package>' 123.txt
但当然,结果是不对的,因为所有的包都有相同的
尝试了这个和这个
awk '/ARM64/,/<\/Package>/ {next} {print}' 123.txt
它实际上工作得很好。但是我不明白如何让它过滤多个包,例如
'/ARM64/,/
我认为这非常接近我的需求
sed -n '/<Package/{:a;N;/\n*<\/Package>/!ba; /x64/p}' 123.txt
它也很好用,但我的无能仍然是一样的,不知道如何加入更多像
x64
和lang-af
这样的过滤器。标题也是如此,
实际上这是非常相似的情况,但是我一点也不理解这个答案
这可能对你有用(GNU sed):
sed '/<Package Type/{:a;N;/<\/Package>/!ba;/_x64_\|_lang-af/!d}' file
收集<代码>之间的行
awk'/ARM64/,/
它实际上工作得很好。但是我不明白如何让它过滤多个包,例如
'/ARM64/,/
和< code>lang-cy的开始条件,如下所示由于两个结束条件相等,您可以使用< code>||
(可选)来构建触发< code>ARM64
awk '/ARM64/||/lang-cy/,/<\/Package>/ {next} {print}' 123.txt
并且再次使用< code>||来获得另一个排除,例如也删除您可能要做的< code>lang-af
awk '/ARM64/||/lang-cy/||/lang-af/,/<\/Package>/ {next} {print}' 123.txt
等等。
警告:您所拥有的内容似乎类似于XML,请注意GNUAWK
最适合与可以使用正则表达式描述的实体一起使用。如果你的,不能用这些来描述,就像XML一样,那么你就需要使用Chomsky Type-2的工具,而不是严格意义上的正则表达式。
问题内容: 我已经使用Python和Django建立了一个在线画廊。我刚刚开始添加编辑功能,从旋转开始。我使用sorl.thumbnail按需自动生成缩略图。 当我编辑原始文件时,我需要清理所有缩略图,以便生成新的缩略图。每个图片有三到四个(我在不同场合有不同的图片)。 我 可以 在文件变量中进行硬编码…但是这很混乱,如果我改变工作方式,则需要重新访问代码。 理想情况下,我想进行正则删除。用正则表
问题内容: 问题: 我 在* 两个实体 A和B 之间 有 多对多关联 。我将 A实体 设置为其 关系 的 所有者 (inverse = true在b.hbm.xml中A的集合上)。 * 当我 删除一个A实体时 , 联接表中的 相应 记录也会被删除 。 当我 删除一个B实体时 , 联接表中的 相应 记录不会被删除 (完整性违反异常)。 - 让我们考虑一些非常简单的 示例 : 文件 a.hbm.xml
问题内容: 我需要更新或删除几个文档。 当我更新时,我这样做: 我首先搜索文档,为返回的结果设置更大的限制(比方说,大小:10000)。 对于每个返回的文档,我都会修改某些值。 我不喜欢对整个修改后的清单(批量索引)进行Elasticsearch。 该操作一直进行到点1不再返回结果为止。 当我删除时,我这样做: 我首先搜索文档,为返回结果设置更大的限制(例如,大小:10000) 我删除所有找到的发
问题内容: 考虑2个或更多表: 我希望删除所有与名字“ Sam ”匹配的 用户 及其 订单 。在mysql中,我通常会做左连接。在此示例中,我们不知道userid。 查询的正确格式是什么? 问题答案: http://www.postgresql.org/docs/current/static/sql- delete.html 您也可以使用 http://www.postgresql.org/doc
问题内容: 我想一次删除多个数据库条目。仅当3个字段匹配时(此处为:姓名,电子邮件,年龄),才能删除每个条目。 如果我只想删除一个属性,则可以选择: 但是,如果我的病情是由多个领域构成的,那该怎么办? 条件应始终匹配所有3个字段()! 问题答案: 使用方法。
问题内容: 我想做这样的事情: 我怎样才能做到这一点? 问题答案: 如果必须选择ID: 如果您已经知道它们(并且它们不在成千上万):