这是我目前的grep:
grep -l -R "battle/" * > /home/results.txt
(This returns the files that it is in)
我想查看每个文件并找到实例“battle /”,然后编译它指向的链接列表。
例如:
<a href="http://www.site.com/battle/index.php">Index</a>
<a href="http://www.site.com/battle/contact.php">Contact</a>
<a href="http://www.site.com/battle/go/here/folder/file.php">Long weird path</a>
我希望grep结果像这样返回:
http://www.site.com/battle/index.php
http://www.site.com/battle/contact.php
http://www.site.com/battle/go/here/folder/file.php
基本上,我们有链接到我们正在删除的文件夹中的页面,因此我们想要找到这些页面中仍在使用的链接。
我想争取战斗/并返回href内的整个路径。
然后我希望将结果输出到我的results.txt文件。
我怎么去做这个grep?谢谢:))
答案 0 :(得分:2)
100%可靠地做到这一点很棘手,没有丢失你想要的东西的风险或抓住你没有的东西;但是一个好的第一近似可能是:
grep -R -o 'http://www.site.com/battle/[^"]*' * > /home/results.txt
(-o
标志表示“仅”输出实际匹配的字符串,而不是包含它们的整行。)
毋庸置疑,这不会捕获使用相对URL的任何链接,例如<a href="/battle/contact.php">
或诸如此类的东西,如果链接用单引号而不是双引号包装URL,它将会混淆。 。 。还有其他各种方法可能出错。 grep
基本上受限于您对输入数据的确切形状的信心。当输入数据最初没有考虑到grep
时,很难实现完美的信心。