这是问题所在:我的进程以以下格式将一系列数据写入标准输出:
[1] i: 0 X: 0 Y: 0
[1] i: 1 X: 1 Y: 0
[2] i: 0 X: 0 Y: 0
[2] i: 1 X: 1 Y: 0
[2] i: 2 X: 2 Y: 0
[4] i: 0 X: 0 Y: 0
它是一个用 MPI 编写的分布式解决方案。
我想要做的是根据括号之间的值(即处理器 ID)将输出放入不同的文件中,以便我可以更轻松地找到每个进程崩溃的位置。
到目前为止,我的方法是运行
test.sh > out | grep '\[2\]'
然后,我对每个感兴趣的数字使用 grep 。后来我做了这个
cat out | grep '\[2\]' > out.2
存储每个进程的结果(提示:我是 bash 新手)。我的问题是这样的:
我该怎么做
test.sh > out | grep '\[${N}\]' > out.${N}
每个进程的结果被发送到自己的文件中?这些进程不会写入文件,因此解决方案必须使用 bash(甚至可能是 awk)。
编辑1:
进程不相互交谈,因此无需保留每个进程写入标准输出的顺序。