У меня есть текстовый файл infile.txt
как таковой:
abc what the foo bar.
foobar hello world, hhaha cluster spatio something something.
xyz trying to do this in parallel
kmeans you're mean, who mean?
Каждая строка в файле будет обрабатываться этой командой perl в out.txt
`cat infile.txt | perl dosomething > out.txt`
Представьте, если текстовый файл содержит 100 000 000 строк. Я хочу распараллелить команду bash, поэтому я попробовал что-то вроде этого:
$ mkdir splitfiles
$ mkdir splitfiles_processed
$ cd splitfiles
$ split -n3 ../infile.txt
$ for i in $(ls); do "cat $i | perl dosomething > ../splitfiles_processed/$i &"; done
$ wait
$ cd ../splitfiles_processed
$ cat * > ../infile_processed.txt
Но существует ли менее верный способ сделать то же самое?