gpt4 book ai didi

linux - 使用 Find -exec 增加

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:00 25 4
gpt4 key购买 nike

我今天正在使用 find 编写一个脚本,我(基本上)在其中尝试查找 png,然后对它们使用 tesseract 并使用序列号命名输出。我正在尝试按以下方式执行此操作。

#!/bin/bash
count=0
find /home/mine/Pictures -iname "*.png" -exec tesseract {} /home/mine/Temporary/test/$count \; -exec bash -c count=$((count+1)) \;

Tesseract 在此上下文中工作得很好,但我无法使我的计数变量递增,因此它只是保持为零。谁能帮帮我?

非常感谢。

最佳答案

-exec 将在新的 bash 进程中多次运行此 bash 命令。 Bash 变量只在它们所属的 bash 进程内有作用域。所以每次 -exec 启动另一个 bash 时,$count 将从 0 重新开始。

我假设您只是想计算已处理文件的数量。我认为您可以这样做:

find /home/mine/Pictures -iname "*.png" -exec tesseract {} /home/mine/Temporary/test/$count -print | wc -l

这应该打印出在新行上找到的每个文件名。此输出通过管道传输到 wc -l 命令,该命令仅计算行数,即处理的文件数。

需要注意的是,如果您的文件名包含换行符,那么每个文件名可能会占用不止一行。但是谁把换行符放在他们的文件名中呢? ;-)

关于linux - 使用 Find -exec 增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com