Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash/Regex只解析包含域和电子邮件地址的文件中的域名_Regex_Bash_Grep - Fatal编程技术网

Bash/Regex只解析包含域和电子邮件地址的文件中的域名

Bash/Regex只解析包含域和电子邮件地址的文件中的域名,regex,bash,grep,Regex,Bash,Grep,因此,我使用一个非常简单的表达式来解析文本文件,但我遇到了一个问题,即电子邮件地址中包含的域也在同一文本文件中与表达式匹配。我只想返回域地址 样品 john3525@aol.com brenda392@yahoo.com xyx.net boxers.on.ca helloworlds.co.uk grep -E -o "\b[A-Za-z0-9]+\.[A-Za-z]{2,4}\b" file.txt > file2.txt 将返回我只想返回的样本中的上述所有内容 xyx.net b

因此,我使用一个非常简单的表达式来解析文本文件,但我遇到了一个问题,即电子邮件地址中包含的域也在同一文本文件中与表达式匹配。我只想返回域地址

样品

john3525@aol.com
brenda392@yahoo.com
xyx.net
boxers.on.ca
helloworlds.co.uk

grep -E -o "\b[A-Za-z0-9]+\.[A-Za-z]{2,4}\b" file.txt > file2.txt
将返回我只想返回的样本中的上述所有内容

xyx.net
boxers.on.ca
helloworlds.co.uk
我认为我需要更具体地说明验证,或者使用某种if或case测试来验证

有什么建议吗?
谢谢

如果您的文件仅包含域和电子邮件地址,请尝试此行:

grep -v '@' file
用您的示例进行测试:

kent$  echo "john3525@aol.com
brenda392@yahoo.com
xyx.net
boxers.on.ca
helloworlds.co.uk"|grep -v '@'
xyx.net
boxers.on.ca
helloworlds.co.uk