加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash如何重用找到的文件名?

发布时间:2020-12-16 01:51:38 所属栏目:安全 来源:网络整理
导读:我想在目录中运行一个脚本,以便为每个找到的点文件生成一个svg文件.就像是: find . -name "*.dot" -exec dot -Tsvg {} ; 这工作正常但只是在stdout上输出结果.通常我使用重定向来生成svg文件.如何获取点文件名以在重定向中使用它 find . -name "*.dot" -e
我想在目录中运行一个脚本,以便为每个找到的点文件生成一个svg文件.就像是:

find . -name "*.dot" -exec dot -Tsvg {} ;

这工作正常但只是在stdout上输出结果.通常我使用重定向来生成svg文件.如何获取点文件名以在重定向中使用它

find . -name "*.dot" -exec dot -Tsvg > "$dotfilename".svg {} ;

解决方法

下列:

for i in `find . -name "*.dot"`; do
   dot -Tsvg $i > $i.svg
done

执行查找(在反引号中)并循环结果,为每个执行点.文件名是$i.

这使用backtick substitution并且是捕获命令输出以便在另一个命令中后续使用的有用机制.

要删除扩展程序并添加其他扩展程序,请使用${i%.*}.svg.有关详细信息,请参阅this SO answer.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读