我有一个Python脚本,它采用.txt文件并对其执行某些操作。我需要一个Linux shell命令,它将在整个系统中搜索.txt文件,并将.txt文件传递给我的Python脚本。我想xargs
我可以运行一个文件的进程来加速程序。我怎样才能做到这一点?
我有一个Python脚本,它采用.txt文件并对其执行某些操作。我需要一个Linux shell命令,它将在整个系统中搜索.txt文件,并将.txt文件传递给我的Python脚本。我想xargs
我可以运行一个文件的进程来加速程序。我怎样才能做到这一点?
Answers:
我相信
find / -type f -name "*\.txt" -exec script.py '{}' \;
会在/中的或者/下面的每个txt文件上运行script.py,导致脚本的调用次数与找到的文件一样多。
现在,如果要同时将多个找到的文件传递给脚本,可以执行以下操作:
find / -type f -name "*\.txt" -exec script.py '{}' +
从find(1)手册页:
-exec操作的此变体在所选文件上运行指定的命令,但命令行是通过在末尾附加每个选定的文件名来构建的; 命令的调用总数将远远少于匹配文件的数量。命令行的构建方式与xargs构建命令行的方式大致相同[...]
显然你可以用xargs实现相同的功能,但语法不够简洁,这就是为什么我更喜欢使用find的-exec动作。