Извините, если это многословно, но у меня есть Perl-скрипт, который частично работает. У меня есть регулярное выражение, которое извлекает либо foo|bar
и префикс для данной строки. Но проблема в том, что мои строки также являются ИМЕНАМИ ФАЙЛОВ, которые я также хочу открыть и получить их содержимое, например locale_col.dat.2010120813.png
(см. Ожидаемый результат ниже).
Вывод теперь выглядит так:
Content:/home/myhome/col/.my_file_del.mail@locale.foo.org
Key1:foo:Key2:col
Content:/home/myhome/col/.my_file_del.dp1.bar.net
Key1:bar:Key2:col
Content:/home/myhome/jab/.my_file_del.mail@locale.foo.org
Key1:foo:Key2:jab
Content:/home/myhome/jab/.my_file_del.dp1.bar.net
Key1:bar:Key2:jab
Мне нужна помощь в настройке, чтобы за один проход я мог прочитать список строк (имена файлов из FileList.txt), извлечь определенные значения из пути имени файла (используя регулярное выражение) и открыть имя файла для его содержимого. Я надеюсь, что это имеет смысл, или я собираюсь разбить это на 2 сценария Perl? Спасибо за ваш вклад.
Код (WIP):
open FILE, "< /home/myname/FileList.txt";
while (<FILE>) {
my $line = $_;
chomp($line);
print "Content:$_"; #This is just printing the filenames.
#I want to get the contents of those file names instead. Stuck here.
if ($line =~ m/home\/myname\/(\w{3}).*[.](\w+)[.].*/){
print "Key1:$2:Key2:$1\n";
}
}
close FILE;
Содержимое файла FileList.txt:
/home/myname/col/.my_file_del.mail@locale.foo.org
/home/myname/col/.my_file_del.dp1.bar.net
/home/myname/jab/.my_file_del.mail@locale.foo.org
/home/myname/jab/.my_file_del.dp1.bar.net
Пример содержимого одного из перечисленных файлов: (для извлечения которого мне нужна помощь здесь)
$ cat .my_file_del.mail@locale.foo.org
locale_col.dat.2010120813.png
Ожидаемый результат:
Content:locale_col.dat.2010120813.png
Key1:foo:Key2:col
...
..