我有一个简单的脚本,我想在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并行读取参数的方式方面,我做错了什么?
发布于 2019-02-09 01:31:14
使用{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因为并行将自动附加这两个文件的行。
发布于 2019-02-09 01:20:08
不要费心于并行的疯狂接口;对于没有特殊字符的文件名,您可以直接选择
paste file.lst name.lst | xargs -n2 echo mvhttps://unix.stackexchange.com/questions/499590
复制相似问题