bash: find -exec и имена файлов

Я хочу раздеть HTML из нескольких сотен файлов.

Вот команда, с которой я начал:

find -name *.html -exec w3m {} > w3m {}.html.out \; 

Проблема, с которой я столкнулся, состоит в том, что он создал один большой файл.htm.out (названный {}.html.out) - я хочу, чтобы файл, который я использую, был назван независимо от его оригинала.out.

Например, у меня есть

2002/filename.html

Я хочу запустить его через w3m и получить 2002/filename.html.out

Какие-либо предложения? Я открыт для других решений, которые не используют Bash

Я использую Cygwin.

1 ответ

Решение

Перенаправление происходит за пределами find, Вызвать подоболочку.

find -name *.html -exec bash -c 'w3m "$1" > w3m-"$1".html.out' w3mout {} \; 
Другие вопросы по тегам