运行 使用 GNU parallel 接受两个参数的命令
run command taking two arguments with GNU parallel
我有一个 perl 程序,它有两个参数,字典文件由
英文单词每行一个,拼接单词也每行一个
线,像这样:
lovetoplayguitar
...
...
所以通常程序是这样使用的:
perl ./splitwords.pl words-en.txt bigfile.txt
它将结果打印到 stdout
。
我正试图通过 GNU parallel
像这样:
time parallel -n 2 -j8 -k perl ./splitwords.pl {1} {2} ::: words-en.txt bigfile.txt > splitted.txt
但它不是那样工作的.. 到目前为止尝试了很多组合但无法
运行 它使用并行。
编辑
实际上这似乎是可行的,但是它只使用了一个核心..?为什么..?
这会将大文件切成 1 MB 的块:
cat bigfile.txt | parallel --pipe --cat -k perl ./splitwords.pl words-en.txt {}
如果 perlscript 只读取文件那么这会更快:
cat bigfile.txt | parallel --pipe --fifo -k perl ./splitwords.pl words-en.txt {}
我有一个 perl 程序,它有两个参数,字典文件由 英文单词每行一个,拼接单词也每行一个 线,像这样:
lovetoplayguitar
...
...
所以通常程序是这样使用的:
perl ./splitwords.pl words-en.txt bigfile.txt
它将结果打印到 stdout
。
我正试图通过 GNU parallel
像这样:
time parallel -n 2 -j8 -k perl ./splitwords.pl {1} {2} ::: words-en.txt bigfile.txt > splitted.txt
但它不是那样工作的.. 到目前为止尝试了很多组合但无法 运行 它使用并行。
编辑
实际上这似乎是可行的,但是它只使用了一个核心..?为什么..?
这会将大文件切成 1 MB 的块:
cat bigfile.txt | parallel --pipe --cat -k perl ./splitwords.pl words-en.txt {}
如果 perlscript 只读取文件那么这会更快:
cat bigfile.txt | parallel --pipe --fifo -k perl ./splitwords.pl words-en.txt {}