Я пытаюсь использовать find в Windows 7 с GNU sed для рекурсивной замены строки текста в нескольких файлах в нескольких каталогах.Я посмотрел на этот вопрос , но решение PowerShell, похоже, работает только с одним файлом, и я хочу работать со всеми файлами с определенным расширением, рекурсивно из текущего каталога.Я попробовал эту команду:
find "*.mako" -exec sed -i "s:<%inherit file="layout.mako"/>:<%inherit file="../layout.mako"/>:"
Но это дает мне кучу дерьма и не меняет никаких файлов:
---------- EDIT.MAKO
File not found - -EXEC
File not found - SED
File not found - -I
File not found - LAYOUT.MAKO/>:<%INHERIT FILE=../LAYOUT.MAKO/>:
Как я могу это сделать?Кажется, у меня должны быть установлены все необходимые инструменты, без необходимости устанавливать Cygwin или UnixUtils или что-либо еще.
Редактировать: хорошо, работать с GNU find, я все еще могу 'Я не могу заставить найти часть, чтобы работать:
> gfind -iname "*.mako" .
C:\Program Files (x86)\GnuWin32\bin\gfind.exe: paths must precede expression
> gfind . -iname "*.mako"
C:\Program Files (x86)\GnuWin32\bin\gfind.exe: paths must precede expression
> gfind -iname "*.mako" .
C:\Program Files (x86)\GnuWin32\bin\gfind.exe: paths must precede expression
Я изначально не использовал GNU find в Windows 7 из-за этот вопрос .
Редактировать:
Я попробовал следующее, но sed не видит никаких входных файлов таким образом:
> ls -r | grep mako | sed -i 's/file="layout.mako"/file="..\/layout.mako"/'
sed.exe: no input files