xargs基于文本文件输入重复复制文件

时间:2013-06-09 10:18:45

标签: macos bash xargs cp

给定PDF文件(例如file.pdf)和包含名称列表的文本文件(例如names.txt)(例如joe,fred,sam)如何将pdf文件复制到新文件夹(例如.dir)多次,以便新文件包含文本文件中的名称。

file.pdf 复制到 dir/joe_file.pdf dir/fred_file.pdf dir/sam_file.pdf

我尝试过使用xarg但没有成功

cat names.txt | xargs cp file.pdf dir/{}_file.pdf

有什么想法吗?

使用OSX执行此操作。

4 个答案:

答案 0 :(得分:1)

使用循环来实现此目的:

for line in $(cat names) ; do cp file.pdf dir/${line}_file.pdf; done

答案 1 :(得分:1)

最后,我使用了以下作品。谢谢你的帮助!

cat names.txt | xargs -I{} cp file.pdf "{}"\ file.pdf

答案 2 :(得分:0)

 for fl in `cat names.txt`
  do 
   cp file.pdf dir/${fl}_file.pdf
  done 

希望这会有所帮助!!

答案 3 :(得分:0)

使用GNU Parallel:

parallel cp file.pdf dir/{}_file.pdf :::: names

如果您需要为一堆pdf文件执行此操作:

parallel cp {2} dir/{1}_{2} :::: names ::: *.pdf

了解有关GNU Parallel的更多信息:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

10秒安装:

wget pi.dk/3 -qO - | sh -x