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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |