的字符串"域名"下查找一系列非Whitespace字符
我正在编写一个bash脚本来从表单的字符串中提取一个域:
....域名example.com ...
我想输出 example.com 。
如何使用匹配来输出此域名?
您应该更好地定义域模式,以便在字符串中更好地匹配它。之后,您可以使用GREP匹配描述您的域模式的正则条件:
domain=`echo "....domain name xxx.com..." | grep -om 1 -G "[^ ]*.com"`
而无需假设域名以" .com"结尾
grep -oP '(?<=domain name )S+'
含义:在字符串"域名"
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