【发布时间】:2016-03-13 11:38:31
【问题描述】:
抱歉标题不是很清楚。 所以假设我正在递归地寻找这样的网址:
grep -ERo '(http|https)://[^/"]+' /folder
在文件夹中有几个包含相同 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输出什么?你能举一些例子吗? -
你需要去掉 ":" 之前的部分,它们不是唯一的,那么你就只有你的 URL。尝试通过管道连接到
awk,然后再连接到uniq。我很快就会自己尝试这样做。 -
嗯,是的,我也在考虑,但如果我需要这个职位怎么办?
-
所以,这将只打印唯一的 URL,但我不确定您如何做到这一点并且仍然保留所有数据,至少不是一次性的。
grep -ERo '(http|https)://[^/"]+' /folder | awk -F ":" '{print $2$3}' | uniq。这很粗糙,但如果grep的输出格式一致,它应该可以工作。 -
您的示例输出多次包含相同的 URL,而您的所有问题看起来就像您只想检索每个 URL 的第一次出现。是哪个?