gpt4 book ai didi

regex - 解析源代码时如何在sed中打印部分正则表达式匹配?

转载 作者:行者123 更新时间:2023-12-03 16:14:55 25 4
gpt4 key购买 nike

我想像这样打印正则表达式匹配之间的部分:

echo "this is foo and another foo quux" | sed 's/this\(.*\)another.*/\1/'

打印

 is foo and

什么是完美的,因为我想在这个和另一个打印之间得到一部分。

但是,如果我想解析我的源代码并使用:

cat source_code | sed 's/.*AdulterateFood\(.*\)DangerousFood.*/\1/'

而且我确实知道 AdulterateFood 和 DangerousFood 在源代码中只有一次,它仍然打印所有内容,整个文件:(我想知道为什么.. AdulterateFood 和 DangerousFood 在不同的行上。

感谢您的建议。

最佳答案

sed 默认打印每一行输入。如果您不想要该行为,则需要添加 -n 选项。如果您希望它打印与您的 RE 匹配的行,您必须在替换命令的末尾添加一个“p”以告诉 sed 打印该行。所以这个:

sed -n 's/.*AdulterateFood\(.*\)DangerousFood.*/\1/p' source_code

似乎是您所要求的,但由于您没有提供任何样本输入和预期输出,所以这只是一个猜测。

关于regex - 解析源代码时如何在sed中打印部分正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089787/

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