我正在使用今天发现的脚本,其中我(基本上)试图找到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在这个上下文中运行得很好但是我不能让我的计数变量增加,所以它只是保持为零。任何人都可以帮助我吗?
非常感谢提前。
答案 0 :(得分:1)
-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
命令,该命令只计算行数,即处理的文件数。
需要注意的是,如果您的文件名包含换行符,则每个文件名可能占用多行。但谁将换行符放在他们的文件名中? ; - )