shell脚本 - 使用正则表达式过滤链接

时间:2018-04-11 07:41:13

标签: regex bash shell filter

我需要正则表达的建议。我有一些.txt文件,哪里是报废的网站。在报废文件(网站)中有一些链接,我需要复制到另一个.txt文件,新行中新文件中的每个记录(链接)。在报废的.txt文件中,所有内容都在一行上(没有空格,不需要),我也不知道如何混合正则表达式。我到处寻找但没有任何与我无法找到的组合。

.txt文件:

some"text href="www.links123.eu/asdci"anothertext.a href="www.nextlink.net"moretext

输出:

  

www.links123.eu/asdci

     

www.nextlink.net

这是废弃的.txt文件:enter here

2 个答案:

答案 0 :(得分:0)

这看起来像是awk(或cut)的好候选者。您想使用"作为分隔符,然后选择第3和第5个条目:

echo 'some"text href="www.links123.eu/asdci"anothertext.a href="www.nextlink.net"moretext' | awk -F '"' '{print $3"\n"$5}'

输出:

www.links123.eu/asdci
www.nextlink.net

答案 1 :(得分:0)

怎么样:

grep -oP '\"http.*?\"' index.txt | tr -d '"'

你必须拥有Gnu grep,或者用grep -P

替换pgrep

输出:

...
https://www.instagram.com/explore/tags/car/?hl=es-la
https://scontent-amt2-1.cdninstagram.com/vp/fac97a99c1a1b8acba2d00036f5f6630/5B5C3121/t51.2885-15/s150x150/e35/c135.0.810.810/30078343_772016273004298_5639967572104314880_n.jpg
...