如何从bash中的字符串中提取域名



我正在编写一个bash脚本来从表单的字符串中提取一个域:

....域名example.com ...

我想输出 example.com

如何使用匹配来输出此域名?

您应该更好地定义域模式,以便在字符串中更好地匹配它。之后,您可以使用GREP匹配描述您的域模式的正则条件:

domain=`echo "....domain name xxx.com..." | grep -om 1 -G "[^ ]*.com"`

而无需假设域名以" .com"结尾

grep -oP '(?<=domain name )S+'

含义:在字符串"域名"

的字符串"域名"下查找一系列非Whitespace字符

with gnu grep

 echo "random words domain name example.com random words" | grep -oP  "domain name K[^ ]+.com"

如果格式与您所说的完全一样,那么这就足够了:

awk '/domain name/{print $3}'

如果字符串存储在变量中,则可以如下使用:

awk '/domain name/{print $3}' <<< $string_name

如果字符串存储在带有其他字符串的文件中,则每行:

awk '/domain name/{print $3}' < input_file > output_file

相关内容

  • 没有找到相关文章

最新更新