bash:查找 -exec 和文件名

发布于 2024-11-03 17:26:13 字数 371 浏览 4 评论 0原文

我想从几百个文件中删除 HTML。

这是我开始使用的命令:

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

我遇到的问题是它创建了一个大型 .htm.out 文件(名为 {}.html.out)——我希望将我正在使用的文件命名为不管它原来是什么。

例如,我

2002/filename.html

想通过 w3m 运行它,并获取 2002/filename.html.out

有什么建议吗?我对其他不使用 bash 的解决方案持开放态度,

我正在使用 cygwin。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

给妤﹃绝世温柔 2024-11-10 17:26:13

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

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

The redirection happens outside of find. Invoke a subshell.

find -name *.html -exec bash -c 'w3m "$1" > w3m-"$1".html.out' w3mout {} \; 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文