Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 10. Help - Помощь
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:   Рус   |   Eng        

Команда: 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 для получения дополнительных примеров выбора файлов.