我在 Linux 中有以下域检查 bash 脚本:
#!/bin/bash
TLD='.com'
while read -r domain; do
whois -H $domain$TLD | grep -oPaq '^.*(Creation Date|record created).*$'
if [ $? -eq 0 ]; then
echo $domain$TLD | tee --append 'files/registered.txt'
else
echo $domain$TLD | tee --append 'files/available.txt'
fi
done < 'files/domains.txt'
我尝试将其重写到 Windows:
@ECHO OFF
SET "TLD=.com"
FOR /F "tokens=*" %%i in (%cd%\files\domains-win.txt) do (
whoiscl -r -n %%i%TLD% | FINDSTR /R /I "\^.*Registrant Name.*$" 2>&1
)
我需要正则表达式方面的帮助。我只想匹配包含 的唯一行Registrant Name
,但现在它返回包含Registrant
和Name
单词的每一行。
答案1
FINDSTR /I /C:"Registrant Name"
应用下一段来自查找字符串文章:
搜索空间
当搜索字符串包含多个单词(以空格分隔)时,
FINDSTR
将返回包含单词(或者)。
文字搜索 (/C:"string"
) 将反转此行为并允许搜索短语或句子。文字搜索还允许搜索标点符号。
请阅读 Dave Benham 的下一篇综合文章:FINDSTR 未记录的功能和限制列表。