假设我有一个包含以下内容的文件
bob
john
sue
现在这些直接对应于(在本例中)URL 模式,例如http://example.com/persons/bob.tar
, john.tar
, sue.tar
。
我想把这些线条贯穿起来xargs
。我不知道传递给正在执行的命令的是什么。如何从提示符(假设我想简单地回显每一行,如cat file | xargs echo $PARAM
)或从 bash 脚本访问参数。
答案1
答案2
我认为您是在问如何将从xargs
' stdin 中提取的各个行插入到命令中间,而不是始终将其粘贴在末尾。如果是,则该-I
标志带有一个replacement-string
参数;然后将在命令中xargs
替换为从标准输入读取的行:replacement-string
$ cat file | xargs -I foobar curl http://example.com/foobar.tar
答案3
答案4
使用 GNU Parallel,您可以执行以下操作:
cat urls | parallel curl {} ">" {/}
或者:
cat persons | parallel curl http://example.com/persons/{}.tar ">" {}.tar
观看 GNU Parallel 的介绍视频以了解更多信息: http://www.youtube.com/watch?v=OpaiGYxkSuQ