addhead | addtail | count | difflines | filter | head | joinlines | linelen | load | ofilter | perline | printloop | replace | run | runloop | snapto | sort | strings | tail | xed | xex | xreplace | Команда: 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. |