问题
I want to strip the HTML out of few hundred files.
Here's the command I've started with:
find -name *.html -exec w3m {} > w3m {}.html.out \;
The problem I've run into is that it created one single large .htm.out file (named {}.html.out) -- I want the file I'm using to be named whatever it's original is .out.
For instance, I have
2002/filename.html
I want to run it through w3m, and get 2002/filename.html.out
Any suggestions? I'm open to other solutions that don't use bash
I'm using cygwin.
回答1:
The redirection happens outside of find
. Invoke a subshell.
find -name *.html -exec bash -c 'w3m "$1" > w3m-"$1".html.out' w3mout {} \;
来源:https://stackoverflow.com/questions/5810296/bash-find-exec-and-filenames