2016-09-16 43 views
2

xargs將一串字符串作爲輸入提供給命令中間的正確方法是什麼?xargs在命令中間的列表中的每個元素,而不僅僅是像-L那樣的末尾

例如,假設我想將所有通過一系列複雜的「管道」進入的文件移動到主目錄。像

$ ... | ... | ... | awk '{print $2}' | xargs -L1 mv ~/ 

東西試圖將主目錄移動到每個輸入,而不是想要的順序排列。

之前有人問了這個問題,但答案是沒有幫助的:

Unix - "xargs" - output "in the middle" (not at the end!)

有沒有辦法給xargs的輸入放入命令的特定部分,而不只是在最後。

+0

在回答時,他們說:創建一個幫手腳本。你嘗試過嗎? –

+0

我當然可以做一個幫手腳本。但如果我這樣做,我並不需要xargs。我可以在劇本中做所有事情。 '| xargs -L1 cmd'非常好**將每行輸入添加到某個命令中,所以我希望有一種簡單的方法可以**在特定位置插入**。 – jmlarson

回答

2

使用GNU並行它看起來像這樣:

$ ... | ... | ... | awk '{print $2}' | parallel mv {} ~/ 

它將運行每個文件一個工作。更快的是:

$ ... | ... | ... | awk '{print $2}' | parallel -X mv {} ~/ 

它將運行作業之前插入多個名稱。

相關問題