(通过文件循环文件并执行某些操作)使用并行程序

时间:2016-10-31 05:50:30

标签: bash parallel-processing

我有两个文件夹:src/build/

src/assets/中,我在build/中有一些同名的文件。

我想在src/assets/中使用并行程序对这些文件执行某些操作。

我的单一流程版本:

cd ../src/assets
find -type f -printf '%P\n' |
while read -r filename
do
    # no exist == very old
    if [[ "$filename" -nt ../../build/"$filename" ]]; then
        echo "$filename" # do something about $filename
    fi
done

如何将其转换为并行版本?

2 个答案:

答案 0 :(得分:0)

这就是我的意思:

array

这会创建一堆形式的命令:

>>> np.zeros(15)
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
    0.,  0.])

然后将它们发送到并行执行几个核心。

(需要GNU cd ../src/assets find -type f -printf '%p\n' | sed 's,.*,[[ "&" -nt ../../build/"&" ]] \&\& echo "&",' | parallel

答案 1 :(得分:0)

一个稍微简单的解决方案:

cd ../src/assets || exit 1 
find . ../../build -type f -printf '%f\n' | sort | uniq -d | parallel echo