2017-08-12 61 views
0

问题如何用file_name作为当前命令的输出创建一个文件?

我有一个文件,该文件是存在于/home/user/Samples/文件夹现在我有一个单独的文件夹/home/user/Reports/。假设我有样本文件夹中的样本DOG.zip文件,现在我想产生这个样品的报告,并将其存储在报告文件夹,并将它命名为文件

我做了什么

cd /home/user/Samples/ 
md5sum DOG.zip | xargs touch ../Reports/{} 
MD5

但这是在Reports文件夹中生成{}文件,但不是以md5作为文件名的空文件。

有关如何解决此问题的任何建议?

+0

我不知道你想要什么。我想你不想'touch/home/user/Reports/md5'。 类似于'file = DOG.zip; md5sum“$ {file}”;触摸“../ Reports/$ {file}”',或者对所有结果执行此操作,或者将md5的输出重定向到报表中的文件,或将名称从'DOG.zip'更改为'DOG.md5'。 –

回答

1

您需要添加-i到xargs的“使”的{}占位符:

$ seq 10 | xargs echo foo{} 
foo{} 1 2 3 4 5 6 7 8 9 10 
$ seq 10 | xargs -i echo foo{} 
foo1 
foo2 
foo3 
foo4 
foo5 
foo6 
foo7 
foo8 
foo9 
foo10 
相关问题