2015-04-01 111 views
3

舉例來說,如果我想引用先前的命令一次的輸出,我可以使用下面的命令:如何在Linux命令中引用前一個命令的輸出兩次?

ls *.txt | xargs -I % ls -l % 

但如何引用輸出兩次?就像我如何才能實現這樣的:

ls *.txt | xargs -I % 'some command' % > % 

PS:我知道如何做到這一點的shell腳本,但我只想要一個簡單的方法來做到這一點。

回答

3

可以將此參數傳遞給bash -c

ls *.txt | xargs -I % bash -c 'ls -l "$1" > "out.$1"' - % 
+1

感謝的人,這就是我想要的! – injoy 2015-04-01 22:12:53

+0

不客氣,很高興它解決了。 – anubhava 2015-04-01 22:16:24

1

您可以查找了 'TPIPE' 上SO;它也會導致你'撒尿'(這不是一個很好的搜索術語在互聯網上的其他地方)。基本上,它們是tee命令的變體,它寫入多個進程而不是像tee命令那樣寫入文件。

然而,隨着猛砸,您可以使用Process Substitution

ls *.txt | tee >(cmd1) >(cmd2) 

這將輸入到tee寫入每個命令cmd1cmd2的。

你可以安排失去標準輸出至少兩種不同的方式:

ls *.txt | tee >(cmd1) >(cmd2) >/dev/null 
ls *.txt | tee >(cmd1) | cmd2 
相關問題