Gnu-Parallel
使用 GNU Parallel 複製和重命名文件
我有一個簡單的腳本,我想
files.lst
根據其中的名稱列表複製和重命名文件names.lst
**name.lst** 100GV200.vcf 150GV200.vcf 14300GV200.vcf **file.lst** file1.txt file2.txt file3.txt
到目前為止,我的腳本如下所示:
parallel --link -k "cp {} {}" :::: file.lst :::: name.lst
不幸的是我回來了:
cp: target `100GV200.vcf` is not a directory
當我在終端中執行單個
cp
命令時,它可以完美執行cp file1.txt 100GV200.vcf
我在理解 GNU 並行讀取參數時哪裡出錯了?
使用 {1} 和 {2} 表示法:
parallel --link -k cp {1} {2} :::: file.lst :::: name.lst
對我有用,它也適用於引號
parallel --link -k "cp {1} {2}" :::: file.lst :::: name.lst
要使其與 {} 一起使用,您必須執行以下操作:
parallel --link -k "cp {}" :::: file.lst :::: name.lst
因為parallel會自動追加兩個文件的行。
不要為parallel混亂的界面而煩惱;對於沒有特殊字元的文件名,你可以去
paste file.lst name.lst | xargs -n2 echo mv