Этот вопрос может показаться немного легким, но я новичок в регулярных выражениях.Я пишу скрипт, пытающийся прочитать следующие два файла "file1" "file2". Получить имя слова после --keep означает, что я хочу получить слово Machine_Test.2019.01 и сделать что-то вроде чтения файла, такого как /tmp/Machine_Test.2019.01файл и проверьте статус файлов.После этого я хочу проверить второе слово после --keep, которое является Machine_Train.2019.02, и сделать то же самое после завершения получения всех слов в файлах file1 и file2.
пример файлов внутри file1 & file2:
#!/bin/csh -f
rsh -n machine1 "( run.py --keep Machine_Test.2019.01 --training 300 )
rsh -n machine2 "( run.py --keep Machine_Train.2019.02 --training 300 )
...
Для первой мысли я работаю над некоторыми ответами и провел небольшой тест по следующему:
my $file = " /tmp/file1 "
open(FI,$file) or die("Could not open file.");
foreach my $line (<FI>) {
if ( my $input =~ /\--keep\s+(\w+)/ ){
my $found = $1;
open another file maybe /tmp/$found
and do something...
} else {
printf("no more find\n");
}
}
close(FI);
Может ли кто-нибудь сказать мне, что не так с моим регулярным выражением на следующем, я попытался, если я сам задаю строку, и я могу получить слово после слова --keep следующим:
$input =~ /\--keep\s+(\w+)/
Или есть какой-нибудь способ получить слово в файле, не читая его построчно. Что я могу сделать, чтобы получить все имена после --- сохранить в file1 и file2?Любая помощь будет высоко ценится.