Bash:find -exec 和文件名

7

我希望剥离几百个文件中的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个回答

13

重定向发生在find之外。调用一个子shell。

find -name *.html -exec bash -c 'w3m "$1" > w3m-"$1".html.out' w3mout {} \; 

用以下命令成功运行:find -name *.html -exec bash -c 'w3m "$1" > "$1".html.out' w3mout {} ; - andyhky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接