Grep:复制包含特定文本的链接

时间:2014-01-16 12:58:40

标签: linux bash search hyperlink grep

我有一个包含许多链接的文本文件,这些链接不在单独的行中。

我想保存在另一个文件中,包含特定单词的所有链接 我怎么能用grep做到这一点?

修改

为了更具体,我有一个带有许多链接的凌乱的txt文件。我想在另一个文件中复制所有以https :: //开头的链接,以.jpg结尾并包含“10x10”字符串,例如

2 个答案:

答案 0 :(得分:0)

你能告诉我们具体的单词和输入文件的例子吗?

你可以尝试使用这样的egrep或/和sed(例如):

 egrep -o "href=\".*\.html\"" file|sed "s/\"\([^\"]*\)/\1/g"

所有类型的http / https资源链接的另一个例子(URL中没有空格):

$ echo "<a href=http://titi/toto.jpg >"|egrep -o "https?:\/\/[^\ ]*"
http://titi/toto.jpg
$ echo "<a href=https://titi/toto.htm >"|egrep -o "https?:\/\/[^\ ]*"
https://titi/toto.htm

您必须根据需要自定义正则表达式。

答案 1 :(得分:0)

您可以从文件中获取包含特定单词的所有行:

LINKS=$(cat myfile.txt | grep MYWORD)

然后使用LINKS,您可以使用分隔符创建链接数组,您可以将其打印到另一个文件。

# Using a space as the delimeter
while IFS=' 'read -ra ind_link
do 
    echo $ind_link >> mynewfile.txt
done <<< "$LINKS"

我认为你想要的是什么?

此外,如果您需要优化搜索,可以使用诸如-w之类的grep选项来获得更具体的信息。

希望它有所帮助。