Команды 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        

Команда: ofilter
sfk offilter in.xlsx -+шаблон

   фильтровать и изменять текстовые строки из стандартного ввода или из файлов.
   строки ввода могут иметь максимальную длину 4000 символов.

   параметры выбора линии
      -+pat1 -+pat2 включает строки, содержащие pat1 OR pat2
      -and+pat1 -and+pat2 включают строки, содержащие pat1 И pat2
                            в любом порядке.
      "-+pat1*pat2" включает строки, содержащие pat1 И pat2
                            в заданном порядке.
      -ls+pat1 включает строки, начинающиеся с pat1
      -le+pat1 -le+pat2 включает строки, оканчивающиеся на pat1 ИЛИ pat2
      "-ls+pat1*pat2" включает запуск pat1 и наличие pat2
      -!pat1 -!pat2 исключить строки, содержащие pat1 ИЛИ pat2
      -ls!pat1 исключить строки, начинающиеся с pat1
      -le!pat1 -le!pat2 исключить строки, оканчивающиеся на pat1 или pat2
      -no-empty-lines исключить пустые строки
      -no-blank-lines исключить строки, содержащие только пробелы
      -inc[lude] от p1 до p2 включают только строки внутри блоков, окруженных
                            граничные линии, содержащие шаблоны p1 или p2
      -inc- от p1 до p2 то же самое, но исключая граничные линии на выходе
      -cut[-] p1 to p2 удалить блок строк от p1 до p2
      -inc[-] "*" to p1 включает все от начала текста до маркера
      -cut[-] p1 to "*" обрезать все от строки маркера до конца текста
      -head=n читать только первые n строк текстовых файлов
      -tail=n читать только последние n строк текстовых файлов
                            (до предела 100000 байт от конца файла)
      -line=n читать только n-ю строку из ввода
      -skipfirst=n пропустить первые n строк. предупреждает о жесткой упаковке.
      -force принимать жестко обернутые строки с -skipfirst
      -nocheck с inc, cut: игнорировать окончания без начала
      -addmark txt с inc, cut: вставлять txt после каждого блока
      -context=n выбрать n строк контекста вокруг строк попадания
      -precon=5: синий цвет выбора контекста до или после хит-линий,
      -postcon=5:cyan:--- синим или голубым, с разделителем "---".
      -unique [-case] если одна и та же строка встречается дважды, оставить только первую.
                            по умолчанию сравнение текста не чувствительно к регистру.
      -global-unique при фильтрации нескольких файлов одной командой,
         тогда -unique применяется к строкам в том же файле, а -global-unique
         применяется ко всем файлам. это кеширует текст всех файлов в
         памяти и не может использоваться с очень большими файлами.
      -сохранять шаблон после -unique: сделать исключение для строк
         содержащие заданный шаблон, и сохранить их, даже если они избыточны.
      -keep-empty, -keep-blank всегда оставляют пустые строки или строки с пробелами.

   параметры обработки текста
      применяется только после опций выбора строки.
      -реп[кружево] _src_dest_
         заменить строку src на dest. первый символ является символом-разделителем (например, _).
         src нечувствителен к регистру. чтобы выбрать поиск с учетом регистра, скажите -case.
      -lsrep[кружево], -lerep[кружево]
         то же, что и -replace, но заменяет только один раз в начале или в конце строки.
      -высокий [светлый] цветовой узор: выделение совпадающих частей внутри строк.
         цвет: красный = темно-красный, красный = ярко-красный, зеленый, синий,
                желтый, голубой, пурпурный, по умолчанию.
         шаблон: например, "GET * HTTP/"
         введите "sfk help colors", чтобы узнать больше о цветах.
      -lshigh[светлый], -lehigh[светлый]
         то же, что и -highlight, но только в начале или в конце строки.
      -sep[arate] "; " -form "$col1 mytext $[-0n.nq]col2 ..."
         разбить каждую строку на столбцы, разделенные любым символом, указанным после -sep,
         затем переформатируйте текст в соответствии с определяемой пользователем маской, аналогичной printf.
         при пропуске -sep вся строка упаковывается в столбец 1. если -spat был
         указано, то -form также поддерживает шаблоны косой черты, такие как \t.
         Google для «синтаксиса printf», чтобы получить более подробную информацию. пример:
      -form "$40col1 $-3.5col2 $05qline $(10.10qcount+1000)"
         переформатировать столбец 1 как правый, по крайней мере, с 40 символами, столбец 2 слева-
         упорядочено не менее чем с 3 и не более чем с 5 символами, затем добавьте строку ввода
         номер, заключенный в кавычки, выровненный по правому краю с 5 цифрами, с префиксом нулей,
         затем номер выходной строки плюс 1000 в кавычках. ПРИМЕЧАНИЕ: некоторые примеры
         может не работать в скрипте sfk, см. раздел «Распространенные ошибки» ниже.
         добавление значений пока работает только с (q)line и (q)count.
      -tabform "$col1 мой текст..."
         разделить и переформатировать столбцы данных csv, разделенных табуляцией.
      -stabform "$col3\t$col2\t$col1"
         изменить порядок трех столбцов, разделенных вкладками, создав вывод с вкладками
         используя шаблоны 's'lash, такие как \t
      -utabform "#col1 мой текст..."
         то же, что и -tabform, но с использованием синтаксиса в стиле unix для создания скриптов.
         которые работают без изменений в Windows и Linux.
      -uform "#40col1 #-3.5col2 #05qline"
         то же, что и -form, но с использованием синтаксиса в стиле unix. сокращение от фильтра -upat.
      -trim удаляет пробелы и символы табуляции в начале и в конце строки.
             используйте -ltrim или -rtrim, чтобы обрезать только начало или конец строки.
      -blocksep " " = обрабатывать блоки пробелов как одиночный разделитель пробелов.
      -join[lines] соединить выходные строки, не печатать перевод строки.
      -wrap[=n] перенос строк вывода рядом с шириной консоли [или в столбце n].
                   установите SFK_CONFIG=columns:n, чтобы определить или переопределить ширину консоли.
      -toiso[=c] преобразует текст UTF-8 в формат ISO-8859-1. некоторые символы дальше
                   диапазон 8-битного кода будет сокращен до чего-то подобного, но
                   большинство из них заменяются точкой '.' или символом c.
      -toutf преобразует текст ISO-8859-1 в UTF-8. если это делается с UTF-8
                   вводимый текст, то существующие последовательности UTF-8 будут уничтожены!
      -tolower или -toupper преобразует az в нижний или верхний регистр.

   условная обработка текста
      -[ls/le]где шаблон -заменить | выделить | -сеп... -форма
          заменить, выделить или переформатировать строки, соответствующие заданному шаблону.
          все строки, не соответствующие шаблону, остаются неизменными.
      -внутри шаблона -заменить _from_to_
          заменить текст в части строки, соответствующей заданному шаблону.
          остальной текст строки остается неизменным.

   поддержка шаблонов
      подстановочные знаки * и ? активны по умолчанию. добавьте -lit[eral], чтобы отключить.
      шаблоны косой черты НЕ активны по умолчанию. добавить -spat для использования \t \q и т. д.
      если вам нужен подстановочный знак *, но ТАКЖЕ хотите найти/заменить символы «*»:
      добавить -spat, затем указать \* или \? найти/заменить '*' или '?' персонажи.
      вместо того, чтобы все время вводить "sfk filter -spat -rep", вы можете использовать
      короткая форма «sfk filt -srep». то же самое относится к -(s)sep, -(s)form и т. д.

   единый синтаксис
      начиная с sfk 1.5.4 вы также можете использовать -: -ls: -le: под окнами.
      filter ... -uform или filter -upat ... -form использует # вместо $.

   Переменные sfk против -tabform
      с -upat под windows, sfk для linux, оба фильтра -tabform
      и переменные sfk используют синтаксис #(имя) для вставки значений.
      чтобы решить эту проблему, синтаксический анализ переменных не является строгим и может сохранить
      неопределенные имена переменных как есть.

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

   дополнительные параметры
      -case сравнение с учетом регистра. по умолчанию нечувствителен к регистру.
                      для дополнительных опций см.: sfk help nocase
      -lit[eral] обрабатывать подстановочные знаки * и ? как обычные символы (подробнее читайте выше).
      -arc XE: включить содержимое архивов .zip, .jar, .tar и т. д.
                          как можно глубже, включая вложенные архивы.
                      XD: demo прочитает первые 1000 байт каждой записи.
      -qarc быстро читать архивы верхнего уровня, но не вложенные.
      -utfout сохранить необработанную кодировку UTF-8 на выходе, чтобы использовать ее
                      с дальнейшими командами, требующими данных UTF-8.
      -verbose показать имена всех файлов, которые сканируются в данный момент.
                      с wfilter: сообщите текущие настройки прокси, если они есть.
      -write не выводить вывод на консоль, а перезаписывать входные файлы.
                      будут перезаписаны только файлы с фактическими изменениями текста.
                      эту функцию можно использовать только с обычными файлами ASCII, а не с
                      двоичные файлы, такие как .doc, .xls. см. также «заменить sfk».
      -write -to msk не перезаписывать входные файлы, а сохранять по маске msk,
                      например tmp\$file . сохраняет только измененные файлы. сказать - написать все
                      записать все файлы, в том числе и без изменений.
      -memlimit=mb при использовании -write вывод кэшируется в ограниченной памяти
                      до 300 мб. используйте эту опцию для расширения, например -memlimit=400
      -yes -write имитирует по умолчанию. добавьте -yes, чтобы действительно записать изменения.
      -snap обнаружить snap-файлы и вывести список имен подфайлов, имеющих текстовые совпадения.
      -snapwithnames То же, что и -snap, но при фильтрации включаются имена подфайлов.
      -nofile[names] не перечислять имена файлов, не делать отступ текстовых строк.
      -subnames with offilter: вставьте имена подфайлов листа .xlsx.
      -count, -cnt предшествовать всем строкам результатов по счетчику строк вывода
      -lnum предшествовать всем строкам результата по номеру входной строки
      -hidden включает скрытые и системные файлы.
      -noinfo не предупреждать о выборе строки в сочетании с -write.
      -noop \" нет операции, взять параметр \" но ничего не делать.
                      может помочь, если ваша оболочка (Windows) неправильно считает цитаты.
      -hitfiles, если следует другая команда (например, +run или +ffilter),
                      передать список файлов, содержащих хотя бы одно попадание.
      -nocconv отключить преобразование умляутов и символов ударения во время
                      вывод в консоль. "sfk help opt" для получения подробной информации.
      -justrc ничего не выводить, просто установить код возврата в соответствующих строках.
      -upat синтаксис в стиле unix с -form, используя # вместо $
      -timeout=n с wfilt: ждать веб-данных до n мс.

   список возможных источников ввода
      из стандартного ввода: введите x.txt | фильтр sfk -+шаблон
      из одного входного файла: sfk filter x.txt --+шаблон
      текст из связанной команды: sfk list mydir .txt +filter --+pattern
      напрямую из многих файлов: sfk filter --+pattern -dir mydir -file .txt
      из многих файлов, по цепочке: sfk list mydir .txt +filefilter --+pattern
      в общем, всякий раз, когда вам нужно убедиться, что содержимое файла (а не
      имена файлов) обрабатываются, лучше говорить "filefilter" или "ffilt".

   поддержка веб-доступа
      поиск слова "html" в URL-адресе http можно выполнить следующим образом:
      фильтр sfk http://192.168.1.100/ --+html
      фильтр sfk http://.100/ -+html
      sfk wfilt .100 --+html
      sfk web .100 +фильтр --+html

   коды возврата для пакетных файлов
      0 нормальное выполнение, совпадающие строки не найдены.
      1 нормальное выполнение, найдены совпадающие строки.
          с -write: возвращает rc 1, только если были записаны какие-либо изменения.
     >1 произошла серьезная ошибка. см. «sfk help opt» для опций обработки ошибок.

   распространенные ошибки
      при использовании filter -form в скриптах sfk выражения вроде $10.10col1
      может конфликтовать с параметрами скрипта $1 $2 $3. чтобы решить это, используйте скобки
      например $(10.10col1), или "метка sfk... -prefix=%", или -uform.

   псевдонимы
      sfk ... +getcol n получить столбец n текста, разделенного пробелами.
                          то же, что +filter -blocksep " " -form $coln
      sfk ... +tabcol n получить столбец n текста, разделенного табуляцией.
                          то же, что +filter -stabform $coln

   смотрите также
      --- команды с открытым исходным кодом ---
      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.
      sfk getvar быстрый однострочный поиск в многострочной переменной
      sfk difflines показывает разные строки между двумя файлами
      sfk help unicode о функциях преобразования широких символов

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

   смотрите также
      sfk filter для большего количества примеров фильтрации

   Примеры
      sfk отфильтровать в.docx -+foo
         получить все строки из in.docx, содержащие foo
      sfk offilt in.xlsx --+apple -stabform $col2\t$col3
         получить строки таблицы, содержащие «яблоко»,
         затем используйте только столбцы 2 и 3.