gpt4 book ai didi

linux - 递归grep不同文件中的唯一模式

转载 作者:太空宇宙 更新时间:2023-11-04 12:55:09 26 4
gpt4 key购买 nike

抱歉标题不是很清楚。所以假设我递归地搜索这样的网址:

grep -ERo '(http|https)://[^/"]+'/folder

在文件夹中有几个包含相同 url 的文件。我的目标是只输出一次这个 url。我试图通过管道将 grep 传送到 | uniq 或 sort -u 但这没有帮助

示例结果:

/www/tmpl/button.tpl.php:http://www.w3.org
/www/tmpl/header.tpl.php:http://www.w3.org
/www/tmpl/main.tpl.php:http://www.w3.org
/www/tmpl/master.tpl.php:http://www.w3.org
/www/tmpl/progress.tpl.php:http://www.w3.org

最佳答案

如果你只想要地址而不是它所在的文件,有一个 grep 选项 -h 来抑制文件输出;然后可以将该列表传送到 sort -u 以确保每个地址只出现一次:

$ grep -hERo 'https?://[^/"]+' folder/ | sort -u
http://www.w3.org

如果您不想要 https?:// 部分,您可以使用 Perl 正则表达式(-P 而不是 -E) 可变长度后视 (\K):

$ grep -hPRo 'https?://\K[^/"]+' folder/ | sort -u
www.w3.org

关于linux - 递归grep不同文件中的唯一模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35969753/

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