Можно ли регулярное выражение заменить из командной строки? Прямо сейчас я использую notepad ++, чтобы сделать это. В командной строке я могу использовать только FINDSTR, который может найти только сопоставленные файлы / строки.
РЕДАКТИРОВАТЬ:
Может быть, удастся создать скрипт VB и запустить его из cmd? Я только что создал файл "hi.vbs" с содержанием
Msgbox "Hi Buddy"
Затем cmd позволяет мне запустить его, набрав «hi» из командной строки.
Так что, если это невозможно с пакетным сценарием, то я могу использовать пакетный сценарий VB. Или..?
Ответы:
перейдите сюда
http://gnuwin32.sourceforge.net/packages.html
прокрутите вниз до SED. Скачайте coreutils тоже, пока вы на нем.
эта команда заменит a на b глобально и в каждой строке. так что не только первое вхождение на линии.
например, используя sed "s / a / b / g" a.txt
VBScript поддерживает регулярные выражения, вы можете найти и заменить его.
Отображает bxxx dxxx xxx
источник
Я написал бесплатный инструмент командной строки для Windows, чтобы сделать это. Он называется rxrepl , он поддерживает Unicode и поиск файлов. Некоторые могут найти это полезным инструментом.
источник
C:\WINDOWS\System32\cmd.exe
Сценарист рассказывает, как это сделать в PowerShell (нет дополнительных загрузок на последних версиях ОС Windows, возможно, он уже установлен).
Запустите его, запустите следующее (чтобы заменить
*
a@
):Это поддерживает регулярные выражения .NET , включая положительный и отрицательный упреждения, и все, что Notepad ++ не поддерживал с регулярным выражением до версии 6.x (насколько я люблю notepad ++).
источник
Я нашел fnr.exe для этого. Имеет графический интерфейс и командную строку.
Просмотр параметров командной строки
источник
Похоже, вы можете использовать регулярные выражения с FINDSTR
findstr [Windows CMD] :
Из справки FindStr (
Findstr /?
):источник
findstr
не может заменить текст в файлах!Я немного опаздываю на вечеринку, но JREPL.BAT - это гибридная утилита регулярных выражений на основе JScript / batch-сценариев, которая работает на любом компьютере под управлением Windows начиная с XP.
Полная документация встроена в сценарий, который может быть доступен через
JREPL /?
, или используйтеJREPL /??
для страничного вывода.JREPL использует стандартное регулярное выражение ECMA, которое поставляется с JScript. Регулярное выражение ECMA не так мощно, как регулярное выражение .NET, доступное для powershell, но все равно чертовски хорошо. И я думаю, что обычный пользователь найдет эту утилиту проще в использовании, чем powershell.
Встроенные параметры JREPL уже предоставляют массу возможностей, но возможность внедрить пользовательский JScript действительно открывает удивительные возможности.
Я разработал сценарий, потому что мое рабочее место не позволяет загружать нестандартные исполняемые файлы, но не имеет ограничений на написание пакетных или JScript-скриптов :-)
Просто перейдите по ссылке и скопируйте код скрипта в файл с именем JREPL.BAT. Прочитайте последующие посты из этой ветки для примеров использования и истории развития. Есть также много ответов StackOverflow, которые используют JREPL.BAT.
источник
Два хороших варианта - либо Cygwin, который предоставит вам Unix-подобную, bash-подобную среду (альтернативу cmd.exe); и Unxutils , Win32 порты из набора отдельных утилит Unix. В любом из пакетов смотрите «sed», «awk» и «grep».
источник
Вы также можете использовать GSAR для поиска и замены в командной строке. Работает с шестнадцатеричным и двоичным, а также. Он не будет выполнять сложную работу, которую может выполнять регулярное выражение, но для базового поиска и замены он выполняет работу быстро и легко.
источник