gpt4 book ai didi

regex - sed 在换行符中匹配模式

转载 作者:行者123 更新时间:2023-12-05 08:43:05 25 4
gpt4 key购买 nike

这是我的输入:

<array>
<string>extra1</string>
<string>extra2</string>
<string>Yellow
5</string>

注意:“黄色”和“5”之间有一个空格和换行符

我正在将它传送到 sed:

| sed -n 's#.*<string>\(.*\)</string>#\1#p'

我得到了输出:

extra1
extra2

我知道,因为 sed 从每个输入行的末尾去除换行符,所以换行符不在那里进行匹配 - 所以这说明了结果。我已阅读有关从缓冲区添加下一行的文章,但我无法弄清楚我需要在模式匹配中使用什么才能使其正常工作。

我想要的输出是:

extra1
extra2
Yellow 5

(以防万一,我使用的是 Mac,因此我需要它与 - 我认为 - sed 的 FreeBSD 变体一起使用。)

当然,如果其他工具更适合我想要实现的目标,我愿意接受建议!谢谢!

最佳答案

连接线并将它们分开:

tr -d "\n" < file| grep -o "<string>[^<]*</string>"|sed 's/<string>\(.*\)<\/string>/\1/'

关于regex - sed 在换行符中匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35278680/

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