есть команда windows "findstr", но она не может заменить и имеет ограниченную поддержку регулярных выражений. Помимо этого посмотрите, как это сделать с * nix, а затем используйте эти инструменты в Windows. Так что вы можете получить grep и sed для windows.
Некоторые люди, работающие в пакетном режиме, могут использовать инструмент (возможно, созданный экспертом по пакетному анализу Дейвом Бенхэмом), который объединяет Microsoft SQL с пакетным и имеет параметры для поиска и замены. Я думаю, это прекрасно, если вы работаете в очень закрытой системе и не можете даже загрузить EXE. Но в противном случае загрузка или копирование / вставка скрипта почти равносильны получению сторонних приложений, и тогда уже есть инструменты, такие как grep и sed, которые широко используются и могут быть загружены для окон.
*?
является ленивой оценкой, которая немного продвинута и требует -P (PCRE - регулярные выражения, совместимые с perl)
C:\>echo abccccdd| grep -oP "a.*?c"
abc
C:\>
Вы можете удалить -P, если хотите, если регулярное выражение менее продвинутое. Хотя я держу это.
Sed не идет так далеко, как PCRE, но поддерживает то, что кажется следующим лучшим в этих утилитах командной строки. ERE (расширенные регулярные выражения). Использование sed с -r может избавить вас от необходимости использовать лишние обратные слеши. В прошлый раз, когда я проверял, без -r он использует BRE (базовые регулярные выражения).
Это означает заменить это регулярное выражение ничем
C:\>echo abccccdd| sed -r "s/c{2,3}//"
abcdd
Этот модификатор /g будет выполнять глобальный поиск и замену, поэтому не просто заменит первое совпадение
C:\>echo abacacda| sed "s/a//g"
bccd
Вы можете получить его с помощью gnuwin32, или вы можете использовать его из cygwin, хотя затем используйте одинарные кавычки, а если вы используете cygwin, то лучше сделать это из оболочки cygwin, например оболочки cygwin bash.
Эти команды могут работать с файлами, очевидно.
C:\>type a.a
asdf
C:\>
C:\>grep -o a a.a
a
C:\>sed "s/a/z/" a.a
zsdf
C:\>
Или Perl
grep не будет искать и заменять. Sed будет, хотя Sed не поддерживает PCRE(по крайней мере, не Sed у меня). Другой вариант - Perl. Perl регулярные выражения так же хороши, как PCRE, если не лучше. Посмотрите здесь https://stackoverflow.com/questions/4794145/perl-one-liner-like-grep и увидите, что в нем упоминается эта ссылка Perl для сопоставления с регулярными выражениями в Terminal? посмотрите мой ответ, там есть perl-формы grep и sed, и у вас будет отличная поддержка регулярных выражений с помощью perl
Если вы посмотрите мой ответ по второй ссылке (как я уже сказал), то вы увидите, что я говорю, что я получил и использовал там perl в cygwin, а также как его можно использовать.