Возможно, я ищу неправильные ключевые слова, или это очень простой вопрос, но я не могу найти ответ на свой вопрос. У меня проблемы с записью результата моей команды whois в новый внешний файл.
Мой код ниже. Требуется $readfilename
, которое является именем файла со списком IP-адресов, и $writefilename
, которое является целевым файлом для вывода. Оба указаны пользователем. Для моих тестов $readfilename
содержит три IP-адреса в трех отдельных строках, поэтому в указанном пользователем выходном файле должно быть три отдельных результата whois.
if ($readfilename) {
open (my $inputfile, "<", $readfilename) || die "\n Cannot open the specified file. Please double check your file name and path.\n\n";
open (my $outputfile, ">", $writefilename) || die "\n Could not create write file.\n\n";
while (<$inputfile>) {
my $iplookupresult = `whois $_ > $writefilename`;
print $outputfile $iplookupresult;
}
close $outputfile;
close $inputfile;
}
Я могу выполнить этот сценарий и получить новый внешний файл, но более половины файла содержит двоичные данные мусора (работающие в CentOS), и только один (или часть из одного) поиска в whois доступна для чтения. 1009 *
Я понятия не имею, как половина моего файла заканчивается двоичным ... но мой подход должен быть неверным. Есть ли лучший способ достичь того же результата?