说,我有一个命令command
可以将大量行打印到标准输出:
line1
line2
.....
lineN
Run Code Online (Sandbox Code Playgroud)
我想将输出保存到磁盘,但不是作为单个文件,而是作为一个文件序列,每个文件都有 1000 行标准输出:
file0001.txt:
-------------
line1
....
line1000
file0002.txt:
-------------
line1001
....
line2000
etc
Run Code Online (Sandbox Code Playgroud)
我试图用谷歌搜索答案,但每次谷歌都指向我tee
命令,这在这种情况下是无用的。可能,我输入了错误的查询。
我有 1000 个要排序的 gzip 文件。
按顺序执行此操作,该过程看起来非常简单:
find . -name *.gz -exec zcat {} | sort > {}.txt \;
Run Code Online (Sandbox Code Playgroud)
不确定上面的代码是否有效(如果我在某处做错了,请纠正我),但我希望你理解这个想法。
无论如何,我想并行化 ungzip/sort 作业,以使整个过程更快。另外,我不想看到所有 1000 个进程同时运行。拥有一些具有可配置容量的有界作业队列(如 Java 中的 BlockingQueue 或 .NET 中的 BlockingCollection)会很棒。在这种情况下,只有 10 个进程会并行运行。
是否可以在 shell 中执行此操作?