Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 4. Text Processing - Обработка текста
addhead | addtail | count | difflines | filter | head | joinlines | linelen | load | ofilter | perline | printloop | replace | run | runloop | snapto | sort | strings | tail | xed | xex | xreplace |

Help:   Рус   |   Eng        Refer:   Рус   |   Eng  

Команда: replace
sfk заменить singleFile [-текст] /src/dst/ [шаблон2] [...] [-да]
sfk replace -[s]pat -bin[ary] /A0A1A2/B5B6B7/ -dir anydir -file .ext1 [-yes]
sfk rep [-dump [-wide]] -bylist words.txt файл1 [файл2 ...] [-yes]

   заменить текстовые или двоичные данные в текстовых и двоичных файлах.
   может заменять множество различных шаблонов параллельно.

   Несколько шаблонов поиска выполняются в заданной последовательности. Имейте это в виду
   если они перекрываются, например, /foo/bar/ /foosys/thesys/ не имеет смысла (foo
   заменено первым выражением, поэтому второе не совпадет).

   по умолчанию заменить функции, работающие в режиме SIMULATION,
      предварительный просмотр хитов без каких-либо изменений. добавьте -yes, чтобы применить изменения.
      Изменение двоичных файлов может привести к непредсказуемым результатам, поэтому сохраняйте
      резервные копии ваших файлов на всякий случай.

   уведомление о лицензии
      это версия sfk replace с открытым исходным кодом.
      замена исходных/целевых шаблонов разной длины происходит медленнее
      и может потребовать много памяти по сравнению с заменами той же длины.
      SFK Plus или XE содержат другую реализацию с высокой производительностью.

   подкаталоги включены по умолчанию
      по умолчанию sfk для большинства команд обрабатывает заданные каталоги,
      а также все поддиректории внутри них. укажите -nosub, чтобы отключить это.

   опции
      -nosub не включать файлы в подкаталоги.
      -nobin[ary] пропускать бинарные файлы.
      -case сравнение текста с учетом регистра. по умолчанию регистронезависимый
                    сравнение для всех текстовых строк, но НЕ для блоков -bin.
                    сравнение с учетом регистра выполняется быстрее, чем без учета регистра.
                    для получения дополнительной информации введите: sfk help nocase
      -nocase принудительное сравнение без учета регистра ТАКЖЕ для шаблонов -bin.
      -pat запускает список поиска или замены шаблонов вида
                    xsrcxdstx, где x — символ-разделитель, src — источник
                    для поиска и dst назначения для его замены.
                    например, /foo/bar/ или _foo_bar_ заменяют foo на bar.
                    -pat не требуется, если указано одно имя файла.
      -text то же, что и -pat, начиная список текстовых шаблонов.
      -spat аналогичен -pat, но также активирует шаблоны косой черты, такие как \t .
                    введите "sfk help pat" для списка возможных шаблонов.
      -spats[trict] то же, что и -spat, но останавливается с ошибкой на undefined
                    шаблоны косой черты, такие как \m в C:\myproj. каждая косая черта
                    затем необходимо экранировать, например, с помощью C:\\myproj.
      -bin[ary] запускает список бинарных шаблонов замены, указанных
                    как шестнадцатеричный код, например /0A0D/2020/
      -bylist x.txt читать шаблоны поиска из файла x.txt, поддерживая
                    несколько строк в шаблоне. (добавьте -full, чтобы узнать больше.)
      -bylinelist x читать /из/в/ или только /из/ шаблоны из файла x
                    с одним шаблоном в строке. (добавьте -full, чтобы узнать больше.)
                    -by(line)list не поддерживает переменные sfk.
                    для использования переменных в шаблонах создайте скрипт sfk
                    с шаблонами в качестве параметров. "скрипт sfk" для получения дополнительной информации.
      -recsize с заменами одинаковой длины: установить размер входной записи
                    для обработки (по умолчанию=100k)
      -firsthit обрабатывает только первое найденное совпадение с шаблоном в файле.
      -maxscan=nm остановить поиск после (приблизительно) первых n мегабайт
                    за файл. можно использовать только с заменой одинаковой длины.
      -quiet не показывать информацию о прогрессе.
      -stat показывает статистику, например количество попаданий по шаблону и нет. файлов.
      -perf показать статистику производительности.
      -memlimit=nm с заменами разной длины, файлы должны быть загружены
                    в память для обработки. лимит памяти по умолчанию
                    использование составляет 300 МБ. установите -memlimit=500m, чтобы выбрать 500 МБ.
      -full print полный текст справки, рассказывающий о файлах шаблонов -bylist,
                    особая чувствительность к регистру символов и вложенные или повторяющиеся
                    заменить поведение.

   параметры вывода
      -dump создать шестнадцатеричный дамп результатов поиска или замененного текста.
       -wide с -dump: показывать 16 байт на строку.
       -Lean with -dump: показывать 8 байтов в строке.
      -dumpfrom всегда сбрасывает результаты поиска, но не заменяет текст.
      -dumpall дамп текста поиска и замененный текст.
      -nodump не создавать шестнадцатеричный дамп, отображать только соответствующие файлы.
      -astext не содержит шестнадцатеричного дампа, но результаты поиска выводятся как обычный текст.
                    используйте это только с обычными текстовыми файлами, а не с бинарными.
      -showle выделяет окончания строк CR/LF в выводе шестнадцатеричного дампа
      -context=n с шестнадцатеричным дампом: показать дополнительные n байтов контекста.
      -reldist с hexdump: указать относительные расстояния до предыдущих попаданий.
      -to dir\$file записать выходные файлы по указанному пути. для получения подробной информации о
                    маски выходного файла, введите "sfk help opt" или "sfk run".
      -tofile x записать выходные данные в один выходной файл с именем x
                    (что не интерпретируется как маска, а принимается как есть).
      -more[n] приостановить вывод каждые 30 или n строк.

   коды возврата для пакетных файлов
      0 = совпадений нет, 1 = совпадения найдены, >1 = произошла серьезная ошибка.
      см. также "sfk help opt" о том, как повлиять на обработку ошибок.

   о вложенных шаблонах замены
      sfk заменить myfile.dat /foo/bar/ /bar/goo/
      с базой SFK «foo» будет заменено на «bar», а затем
      сразу же «бар» снова заменяется на «липкий».
      с SFK Plus или XE замененная часть текста не заменяется
      снова в той же команде, поэтому «foo» остается замененным на «bar».

   неожиданное поведение повторной замены
      в зависимости от входных данных и выражений поиска/замены,
      может случиться так, что одна и та же замена выполняется несколько раз
      в том же файле производит дальнейшие обращения, которых не было
      в первом прогоне. добавьте опцию -full, чтобы узнать больше об этом.

   многострочные параметры в кавычках поддерживаются в скриптах
      с использованием полной отделки. введите "скрипт sfk" для деталей.

   уведомление об исполнении
      система может кэшировать выходные файлы, записывая на диск в
      фон после завершения sfk. последующий командный файл
      команды могут выполняться медленнее.

   поддержка офисных файлов
      sfk offind поиск в содержимом текстового файла .xml
                       офисные файлы, такие как .docx .xlsx .ods .odt.
      Справочный офис sfk для получения дополнительной информации и вариантов

   смотрите также
      --- команды с открытым исходным кодом ---
      sfk xfind поиск подстановочного текста в текстовых файлах
      sfk поиска в офисных файлах .docx .xlsx .ods
      sfk xfindbin поиск подстановочного текста в текстовых/двоичных файлах
      sfk xhexfind поиск в текстовом/двоичном файле с выводом шестнадцатеричного дампа
      sfk Extract извлекает данные подстановочных знаков из текстовых/бинарных файлов
      sfk фильтрует фильтр и редактирует текст с помощью простых подстановочных знаков
      sfk найти поиск фиксированного текста в текстовых файлах
      sfk findbin ищет фиксированный текст в текстовых/бинарных файлах
      sfk hexfind ищет фиксированный текст в бинарных файлах
      sfk replace заменить фиксированный текст в текстовых/бинарных файлах
      --- бесплатные команды ---
      инструмент sfk view GUI для поиска текста по мере ввода
      --- Коммерческие команды xe ---
      sfk replace заменить фиксированный текст с высокой производительностью
      sfk xreplace заменить подстановочный знак в текстовых/двоичных файлах
      sfk help xe о SFK XE и xreplace с выражениями SFK.

   остерегайтесь командных символов оболочки.
      для поиска или замены текстовых шаблонов, содержащих пробелы или специальные
      такие символы, как <>|!&?*, вы должны добавить кавычки "" вокруг параметров
      или среда оболочки уничтожит вашу команду. Например,
      шаблон /foo bar/other/ должен быть написан как "/foo bar/other/"
      в файле .bat или .cmd процент % должен быть экранирован как %%
      даже в кавычках: sfk echo -spat "процент %% - это процент \x25"

   веб-ссылка
      http://stahlworks.com/sfk-rep

   распространенные ошибки использования
      sfk hexfind в.txt "/foo\r\n/"
         не найдет "foo" в конце строки, а ищет буквально
         строки типа «косая черта и r». добавить опцию -spat для включения
         шаблоны косой черты, преобразование \r\n в настоящие коды CRLF,
         или используйте xhexfind, где шаблоны косой черты используются по умолчанию.
      sfk hexfind mydir "/foo*bar/"
         не найдет "foo" и "bar" ни с какими символами
         между ними, но ищет буквальную звездочку "*".
         используйте xhexfind, чтобы включить поиск с подстановочными знаками.
      sfk rep in.txt "/foo[0,1000 байт]bar/---/"
         не будет заменять до 1000 байт между "foo" и "bar",
         но заменяет буквальную строку «foo», затем «[1000 байт]»
         потом "бар". вместо этого используйте xed или xreplace.

   Примеры
      sfk заменить myfile.dat "/Lemon/Curry/"
         замените Lemon на Curry в файле myfile.dat. search is
         без учета регистра, поэтому "лимон" также будет заменен.
         кавычки "" здесь необязательны.
      sfk заменить -pat /FooCase// -dir . -файл .txt
         поиск FooCase во всех файлах .txt ниже текущего каталога.
         обратите внимание, что если вы пропустите единственный параметр fileOrDir,
         вы должны сначала сказать -[s]pat, -bin или -text, чтобы четко сказать
         что вы укажете целевой набор файлов позже.
      sfk rep -spat "/The foo/The\tbar/" -dir mydocs
         заменяет «The foo» на «The» и «bar», разделенные символом TAB,
         во всех файлах в mydocs.
      sfk rep -binary /1A/20/ -dir docs -file .txt .info .note
         заменяет все байты с кодом 0x1A на код 0x20, во всех .txt,
         Файлы .info и .note в каталоге docs и во всех подкаталогах.
      sfk заменить tmp\image.dat -bylist patches.txt
         ищет исходные шаблоны в файле tmp\image.dat,
         заменяет шаблонами, указанными в patches.txt
      SFK Base и XE: обмен текстами в два этапа
      sfk -yes реп io.txt /foo34/foo99/ /foo12/foo34/ +rep /foo99/foo12/
         заменяет foo12 на foo34 и наоборот. с SFK Base, слово
         который заменяется, может быть снова заменен следующим шаблоном,
         поэтому промежуточный шаг: превратить foo34 во что-то
         нигде не используется в io.txt, то замените foo12, то замените
         промежуточный шаблон обратно во второй команде замены
         в том же файле.
      Только SFK XE: замена текста за один шаг
      sfk rep io.txt /foo12/foo34/ /foo34/foo12/ -да
         заменяет foo12 на foo34 и наоборот. с XE, слово, которое
         заменяется, не просматривается снова в той же команде, поэтому
         "foo34" из первого паттерна не меняется на 2-й.
      sfk hexfind mydir -pat /FooCase/ +list -late
         не заменять, просто найти бинарные файлы, содержащие "FooCase",
         затем перечислите их, отсортированные по времени. также принимает файлы -bylist.
      sfk replace -binary /666f6f/626172/ -dir mydir -file .dat
         заменить двоичные данные шестнадцатеричными значениями 0x66, 0x6f, 0x6f
         по данным со значениями 0x62, 0x61, 0x72 во всех файлах .dat.