gpt4 book ai didi

linux - 在文件内搜索和替换

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:02 24 4
gpt4 key购买 nike

我有一个包含数千行的 XML 文件,有时会遗漏一个结束标记。这是有问题的,因为我有一个 python 脚本将它转换成电子表格,但是当缺少结束标记时,脚本会中断并发送不完整的数据。

这是一个 XML 示例:

<notes>
<note>
<note>-Some text
<date>2014-07-30T14:30:18-07:00</date>
</note>
</notes>

谁能告诉我如何在文件中搜索,找到缺少标签的地方,然后插入它?

我一直在尝试使用 grep,但我无法让它在多行上找到一组字符串。这是我一直在尝试的:

grep "'</date>'\n''</note>'\n'</notes>'" somefile.xml

查找问题解决后,我不确定如何替换文本。

最佳答案

这适用于给定的数据。但是,它不会尝试保持间距。

awk '
/<note>/ { n++ }
/<\/note>/ { n-- }
/<\/notes>/ { for( ; n; n--) print"</note>" }
{ print }
' file

如果它总是内部的有时会丢失并且它总是间隔相同,你可以保持这样的间距:

awk '
/^ <\/note>/ { endfound=1 }
/^ <\/note>/ && !endfound { print " </note>" }
{ print; endfound=0 }
' file

关于linux - 在文件内搜索和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com