2011-11-17 76 views
0

列表這是我在這裏的第一篇文章,雖然我來到這裏的解決方案非常非常頻繁! 我找不到我有問題的答案。也許我在我的搜索中使用了錯誤的標籤:/無論如何,請問,如果之前詢問過問題,請提前諒解我。自動分割文件

我想創建一個小的腳本來自動上傳照片和視頻的文件夾。我目前使用名爲「flickr_upload」的perl腳本,在macports目錄中找到。

比方說,我有一個目錄的12個文件。我想在3批4個文件中分割這12個文件,並使用xterm並行啓動3個命令行。

如何自動分割僅通過指定的批數列表?

問候

編輯:不是寫作:

flickr_upload photo01.jpg photo02.jpg photo03.jpg 

我想有:

flickr_upload photo01.jpg 
flickr_upload photo02.jpg 
flickr_upload photo03.jpg 

寫一樣的東西:

split -n 3 ./*.jpg | xterm flickr_upload - 

回答

1

xargs可以爲你做這個。

例如,seq 10 | xargs echo回聲所有10個 「論據」 一次。但seq 10 | xargs -n 3 echo做他們3在同一時間:

1 2 3 
4 5 6 
7 8 9 
10 

我不知道flickr_upload或什麼「的MacPorts」可能是什麼,但想必你可以這樣做:

ls *jpg | xargs -n 3 flickr_upload

+0

感謝您的提示!事實上,它做什麼,我想雖然我需要計算模+ 1來計算n的正確的價值;) – caccialdo

+0

MAC端口非常類似於UNIX風格的港口體系,但移植到OS X的寶貴提示,但! –

1

如果您已經GNU並行http://www.gnu.org/software/parallel/安裝不需要計算模+ 1:

seq 100 | parallel -X -j 3 echo 

如果你只是想uploa並行d 3(含3運行的所有的時間):

seq 100 | parallel -j 3 echo 

您可以通過簡單的安裝GNU並行:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel 
chmod 755 parallel 
cp parallel sem 

手錶GNU並行的介紹視頻,瞭解更多: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

1

xargs的可以同時運行多個線程:

cat list_of_files | xargs --max-procs 6 -I {} upload_file {} 

而且這裏是如何分組:

seq 1 10 | xargs -I {} bash -c "echo {} >> bucket_\$((\$RANDOM % 4))" 
head bucket_* 
seq 0 3 | xargs -I {} rm bucket_{}