1

У меня есть следующий скрипт проверки домена в Linux:

#!/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 ответ1

2
FINDSTR /I /C:"Registrant Name"

Применяется следующий абзац от findstr artice:

В поисках пространства

Когда строка поиска содержит несколько слов, разделенных пробелами, FINDSTR возвращает строки, содержащие любое слово (ИЛИ).
Литеральный поиск (/C:"string") обратит это поведение и позволит искать фразу или предложение. Литеральный поиск также позволяет искать знаки препинания.

Прочитайте следующую обширную статью Дэйва Бенхэма : список недокументированных функций и ограничений FINDSTR.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .