Я пытаюсь использовать команду Gnuwin32 grep для создания списка файлов, которые я хотел бы передать другой команде (на самом деле Perl-скрипт). У меня есть куча файлов HTML, и я хочу перечислить каждый из них, который соответствует описанию regexp itemprop=['"]description
.
Теперь, после некоторых недоразумений, я обнаружил, что вызов cmd.exe
grep -i -E -l "itemprop=['\"]description" path/to/files/*.htm
работает нормально, но я не могу передать его вывод perl (или любой другой команде, в этом отношении):
grep -i -E -l "itemprop=['\"]description" path/to/files/*.htm | perl myscript.pl
выводит список файлов на терминал, после чего
grep: |: No such file or directory
grep: perl: No such file or directory
myscript.pl
греп лечит | и последующие слова в качестве аргументов. Как мне избежать этого?
Кроме того, я попытался преодолеть проблему с Powershell. Оттуда я могу просто передать по конвейеру (если я использую элементарное выражение, например "itemprop"), но у меня возникают проблемы с указанием выражения для поиска.
grep -i -E -l "itemprop=['\"]description" path/to/files/*.htm
просто не работает. Powershell показывает мне знак >> Я даже не знаю, что это значит (ожидая большего ввода)? Я пробовал все способы избежать кавычек, но ни одна из них не работает. Иногда это оболочка, иногда grep, который жалуется на непревзойденного персонажа.
Любая помощь с благодарностью.