help chain | help chars | help colors | help compile | help nocase | help office | help options | help patterns | help select | help shell | help unicode | help var | samp | Команда: help select ссылка на выбор файла sfk: принципы по умолчанию для большинства команд sfk: - обработка подкаталога (подпапки) производится по умолчанию. - сравнение имен файлов нечувствительно к регистру. - скрытые и системные файлы не обрабатываются, за исключением некоторых команд, таких как копирование. - переход по символическим ссылкам. введите «опции справки sfk», чтобы узнать, как это изменить. как выбрать каталоги и содержащиеся в них имена файлов: sfk предоставляет множество способов указать, какие файлы вы хотите обработать, от очень простых, но негибких до очень подробных. 1. выбор файла короткого формата: имя каталога [маска_файла1] [маска_файла2] [!маска_исключения_файла] [...] этот формат поддерживает ОДНО имя каталога, за которым следует множество масок файлов. его можно использовать с большинством команд, обрабатывающих деревья каталогов. пример: sfk list mydir foo bar .txt .zip !-tmp выбирает все файлы - в каталоге mydir и во всех его подкаталогах - наличие строки foo ИЛИ в имени файла (* не требуется) - ИЛИ которые заканчиваются на .txt ИЛИ .zip (*.txt не требуется) - но без -tmp в имени файла поддерживается командами: list, select, stat, run, detab, scantab, hexdump и некоторые другие. 2. выбор файла длинного формата: -dir root1 [root2] [*pathmask*] [...] [-file mask1 [mask2] [...] [-dir root3 root4 !direxcludemask -file mask3 !xmask4] [...] этот формат поддерживает - несколько наборов корневых каталогов, начиная с -dir, каждый из них содержащий множество каталогов, масок путей или масок исключения каталогов. маска пути — это выражение в наборе каталогов, содержащее подстановочный знак "*". запускается маска исключения каталога по ! и может быть окружен \ для выбора точных имен каталогов. - Маска файла устанавливается для каждого набора корневых каталогов, начиная с -file. это также может содержать исключения файлов, начинающиеся с ! при поддержке: почти каждая команда, чем может обрабатывать наборы файлов. чтобы выбрать все каталоги текущего каталога, кроме чего-то: -реж. !foo -> исключить подкаталоги, такие как *foo* -реж. !.foo -> исключить с расширением .foo -реж. !\foo -> исключить начало с foo -реж. !foo\ -> исключить окончание на foo -реж. !\foo\ -> исключить именно foo -реж. !\foo\bar\ -> исключить комбинированный подкаталог -реж. !*.foo* -> исключить с .foo где угодно чтобы выбрать только подкаталоги текущего каталога с чем-то: используя широкие выражения sub dir: -реж. -subdir foo -> включить пути, имеющие *foo* -реж. -subdir \foo -> включить пути, имеющие *\foo -реж. -subdir foo\ -> включить пути, имеющие *foo -реж. -subdir \foo\ -> включить пути точно foo -реж. -subdir .foo -> включить с расширением .foo -реж. -subdir \foo\bar\ -> включить комбинированный подкаталог вместо -subdir вы также можете ввести просто -sub используя компактные выражения sub dir: -реж. *foo* -> включить пути, имеющие *foo* -реж. *\foo -> включить пути, содержащие \foo -реж. *foo\ -> включить пути, содержащие foo\ -реж. *\foo\ -> включить пути точно foo -реж. *.foo -> включить с расширением .foo -реж. *\foo\bar\ -> включить комбинированный подкаталог исключение по имени файла: -file !foo -> исключить все файлы типа *foo* -file !\foo -> исключить начинающийся с foo -file !foo\ -> исключить окончание на foo -file !\foo\ -> исключить точно foo -file !.foo -> исключить расширение foo включение по имени файла: -file foo -> включить все файлы типа *foo* -file \foo -> включить, начиная с foo -file foo\ -> включить оканчивающийся на foo -file \foo\ -> включить именно foo -file .foo .bar -> выбрать файлы .foo и .bar Примеры sfk scantab -dir mydir1 mydir2 *include* -file foo bar .hpp сканирует все файлы на наличие символов TAB - в каталоге mydir1 и всех его подкаталогах А ТАКЖЕ - в каталоге mydir2 и всех его подкаталогах ЕСЛИ - 1. путь к файлу содержит слово "включать", например, mydir1\core\include\foosys.hpp - 2. имя файла содержит foo ИЛИ bar - 3. или имя файла заканчивается на .hpp sfk scantab -dir mydir1 !include -file !.tmp !.save сканирует все файлы на наличие символов TAB в папке mydir1, исключая все поддиректории, имеющие в своем названии слово «include», и исключая все файлы .tmp и .save. sfk list -dir source include -subdir save !.svn -file .bak перечислить файлы .bak из исходного дерева каталогов и включить, внутри в подкаталогах, имеющих «сохранить» в своем имени, за исключением подкаталогов, оканчивающихся на «.svn». sfk list -dir source include *save !.svn -file .bak то же, что и выше, но в формате компактного подкаталога: маски включения subdir требуют подстановочного знака * в любом месте чтобы было ясно, что они не являются корневыми каталогами. Маски исключения subdir могут оставаться такими, какие они есть. повторное использование набора файлов в сценариях: чтобы разрешить повторное использование одного и того же -dir... -file... параметры разными командами, эти опции существуют: -root x префикс каждого параметра -dir на x, затем удалите x в параметрах -dir, чтобы сделать набор файлов совместимым для копирования/синхронизации -using l use -dir ... -file ... текст, указанный в метке l. текст в этой метке может содержать // примечания, но нет переменных типа #(foo). -checkdirs остановить, если указанные папки -dir не существуют чтобы получить полный пример типа скрипта: sfk batch mytest.bat для примера .bat для Windows sfk batch mytest.sh для примера Cygwin/Linux .sh 3. выбор набора файлов с одним параметром: некоторые команды, такие как find, filter или tail, не принимают полный короткий формат, а только один файл или параметр dir, так как было бы слишком сложно смешивать краткий формат с локальным опции. подробнее об этом в локальной справке команды. 4. передача списков имен файлов в цепочках команд: вместо выбора файлов в текущей команде вы можете использовать список имен файлов, созданный предыдущей командой, например: sfk выберите mydir .txt +detab=3 выбирает все файлы .txt из каталога mydir, затем передает этот список файлов для отделения, где файлы отделены. цепочка команд более интуитивно понятна, так как вы можете поиграть с различными наборами файлов перед выполнением фактических изменений на выбранных файлах. sfk имена фильтров.txt +texttofilenames +list -late при условии, что name.txt содержит список имен файлов, эта цепочка команд перечисляет самые последние из этих файлов. обратите внимание, что в этом случае неясно, передать ли - имя файла "names.txt" или - содержимое строки из names.txt как имена файлов в "список", поэтому нам нужно вставить +texttofilenames или +ttf для принудительного преобразования. при поддержке: некоторые команды. проверьте локальную справку каждой команды для получения дополнительной информации. смотрите также sfk help options общие параметры для большинства команд. sfk list для получения дополнительных примеров выбора файлов. |