Консультация № 40337
15.04.2006, 08:56
0.00 руб.
0 1 1
Значит хочу для себя сделать простой скрипт, который бы искал в файлах фразу и заменял бы ее. Естественно, что в качестве файлов можно задавать и сами файлы и папки.
Я знаю, что это реализовано во многих текстовых редакторах (у меня на данный момент два имеет такую возможность), но еще раз повторю, мне хочется это сделать для себя.
Проблема встала такая. Все параметры естественно передаются через командую строку. Так вот, как мне определить чем является параметр папкой или файлом ? Если это папка я применяю операцию /* через которую перебираю все подпапки и файлы через рекурсию. Но проблема и заключается в том, что мне нужно как-то узнать, является ли этот параметр файлом или папкой. Если это приминить к файлу (/*), Perl попросту пропустит его, посчитает неправильным, в чем он абсолютно.
Делаю я это под Windows. В WINAPI, например, это можно узнать без труда, через FILE_ATTRIBUTE_DIRECTORY, если бы это бы UNIX, то там тоже имеется специальный флаг, значение которого без труда можно получить, но у меня Windows. Как можно это узнать в Perl ?

Обсуждение

Неизвестный
15.04.2006, 16:24
общий
это ответ
Здравствуйте, RedDevil!
делается это элементарно:

foreach (@ARGV) {
if (-f $_) {
# process argument as file
} elsif (-d $_) {
# process argument as directory
}
}

а вообще, для этого, imho, лучше использовать find & sed. сборки под винду есть (http://unxutils.sourceforge.net/)
Форма ответа