我有一个包含10000个txt文件的文件夹,以及一个shell脚本,如果在单个文件上使用,则按以下方式工作:
cat some_file.txt | ./myscript.sh
但是,我正在尝试创建一个循环,将脚本传递给该文件夹中的每个文件。以下是我迄今为止所做的尝试 - 并且非常有效:
for f in /Users/me/desktop/folder*.txt; do ./myscript.sh “$f”; done
任何想法如何添加" cat"在我的脚本中命令?
答案 0 :(得分:2)
如果myscript.sh
的一个实例足以满足所有文件的内容:
find /Users/me/desktop/ -maxdepth 1 -type f -name 'folder*.txt' \
-exec cat {} + | ./myscript.sh
...这将使find
为每批文件调用一个cat
实例,直到操作系统对命令行长度的限制,并且具有所有结果将单个流中的cat
个实例放入myscript.sh
的一个实例中。
或者,如果您希望为每个文件创建不同的脚本实例:
for f in /Users/me/desktop/folder*.txt; do ./myscript.sh <"$f"; done