我有一个链接,我只想返回 www.和.com
例如www.blablabla.com
只会返回blablabla
我怎么能这么做呢?当我使用grep '\.[a-zA-Z0-9\.-]*\.
' 它给了我.blablabla.
答案1
$ echo "www.blablabla.com" | grep -oP '(?<=\.)[a-zA-Z0-9\.-]*(?=\.)'
blablabla
-o
-- 只打印匹配行的匹配部分
-P
-- 使用 Perl 正则表达式
(?<=\.)
——在字面上.
,又名“积极的后视”之后......
[a-zA-Z0-9\.-]*
-- 匹配零个或多个小写和大写字符、数字 0-9、文字.
和连字符 ...
(?=\.)
-- 后面跟着一个文字.
,又名“积极的前瞻”
看到这个有关环顾四周的更多信息的链接。类似的工具https://regex101.com/可以帮助您分解正则表达式。
答案2
sed解决方案:
$ str='Hellowww.hello.comMywww.world.comWorld'
$ echo "$str" | sed -e 's/com/com\n/g' | sed -ne '/.*www\.\(.*\)\.com.*/{ s//\1/p }'
hello
world