我在文件中有以下几行文本:
(http://onsnetwork.org/kubu4/2018/10/16/qpcr-c-gigas-primer-and-gdna-tests-with-18s-and-ef1-primers/), I checked Ronit's [DNased ctenidia RNA (from 20181016)](http://onsnetwork.org/kubu4/2018/10/16/dnase-treatment-ronits-c-gigas-ploiyddessication-ctenidia-rna/)
我想提取与此模式匹配的每一个字符串:
(http://onsnetwork.org/kubu4/.*/)
我尝试了以下命令,但它返回整行,尽管使用了-o标志:
grep -o "(http://onsnetwork.org/kubu4/.*/)" file.txt
我想要的输出是:
(http://onsnetwork.org/kubu4/2018/10/16/qpcr-c-gigas-primer-and-gdna-tests-with-18s-and-ef1-primers/)
(http://onsnetwork.org/kubu4/2018/10/16/dnase-treatment-ronits-c-gigas-ploiyddessication-ctenidia-rna/)我将将grep命令应用于一系列在(http://onsnetwork.org/kubu4/之后具有不同文本的文件,因此该命令需要允许这种灵活性。
我只是不知道为什么grep的regex部分会导致grep返回整行,而不是每次匹配。
发布于 2018-11-08 17:46:38
您应该检查括号内的urls:
grep -o '(http://onsnetwork.org/kubu4/[^)]*/)' # So, [^)]* and not .*在使用.*/时,grep同时从(提取到最后一个/。
https://stackoverflow.com/questions/53213379
复制相似问题