我有一个包含许多链接的文本文件,这些链接不在单独的行中。
我想保存在另一个文件中,包含特定单词的所有链接 我怎么能用grep做到这一点?
修改:
为了更具体,我有一个带有许多链接的凌乱的txt文件。我想在另一个文件中复制所有以https :: //开头的链接,以.jpg结尾并包含“10x10”字符串,例如
答案 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选项来获得更具体的信息。
希望它有所帮助。