2014-10-28 37 views
2

我想運行與GNU paralllel並聯的大小調整工作:不能運行實:graphicsmagick平行

ls *.* | parallel gm convert -gamma 0.454545 -strip -filter Lanczos -resize 1280x1280> -gamma 2.2 -format png \"{}\" \"./out/{.}-huge.png\" 

它給出了一個錯誤:

gm convert: Unable to open file (2.2) [No such file or directory]. 

那麼,如何逃脫「>」正常嗎?

+0

這是[從來不是一個好主意](http://mywiki.wooledge.org/ParsingLs)使用'ls'這樣的輸出。如果你想傳遞當前目錄中所有文件的列表,你應該使用glob擴展:'parallel ... *'。不幸的是,我對「parallel」命令不夠熟悉以提供任何進一步的幫助。 – 2014-10-28 10:29:37

+0

並行用於使命令並行運行。所以它會自動將它分配到系統中的CPU上:我不知道如何用for循環來做它,因爲這就像創建了許多gnu並行實例一樣。 – user3384741 2014-10-29 11:18:48

回答

1

事情是這樣的:

parallel gm convert -gamma 0.454545 -strip -filter Lanczos -resize '1280x1280\>' -gamma 2.2 -format png {} ./out/{.}-huge.png ::: * 

或者:

ls | parallel gm convert -gamma 0.454545 -strip -filter Lanczos -resize '1280x1280\>' -gamma 2.2 -format png {} ./out/{.}-huge.png 
從包含文件名

(除了\ n它實際上是安全的傳遞ls到GNU並行:它會做特殊字符的引用)。

+0

它仍然會得到:「gm convert:無法打開文件(2.2)[沒有這樣的文件或目錄]。」與「並行gm convert -gamma 0.454545 -strip -filter Lanczos -resize 1280x1280> -gamma 2.2 -format png {} ./out/{.}-huge.png ::: *」 – user3384741 2014-10-29 11:20:18

+0

我編輯過了>現在引。 – 2014-10-29 13:00:58