我知道我可以使用xargs
來獲取文件列表併爲每個文件運行一次命令。如何將值列表作爲單個參數列表傳遞給xargs?
我想要做的是將文件列表作爲單個參數列表傳遞給命令。例如:
ls | tail -10
輸出
a
b
c
d
,但我想它管的命令將收到名單如下:
command a b c d
我米猜xargs
是這項工作的最佳工具,但我對任何事情都是開放的。記得越好越簡單。
我知道我可以使用xargs
來獲取文件列表併爲每個文件運行一次命令。如何將值列表作爲單個參數列表傳遞給xargs?
我想要做的是將文件列表作爲單個參數列表傳遞給命令。例如:
ls | tail -10
輸出
a
b
c
d
,但我想它管的命令將收到名單如下:
command a b c d
我米猜xargs
是這項工作的最佳工具,但我對任何事情都是開放的。記得越好越簡單。
只是
ls|xargs command
會做。當然,如果列表沒有超出命令行長度限制,
command `ls`
也足夠了。
如果OP真的希望將文件名作爲單個參數加入,則這是不正確的。 –
如果您閱讀他的問題的標題和更正的問題,您會看到情況並非如此。 – Armali
你可以嘗試:
command $(ls|tail -10|paste -s)
,如果你想擁有空間分隔符:
command $(ls|tail -10|paste -s -d" ")
也xargs的有-n
選項,你可以給一個鏡頭。例如:
kent$ seq 5
1
2
3
4
5
kent$ seq 5|xargs -n5
1 2 3 4 5
只需使用報價和變量擴展:
command "$(ls | tail)"
測試(command
):
#!/bin/bash
echo $1
輸出:
a b c d
隨着'命令AB c d',列表不是一個參數,而是四個參數。可能你忘了寫_list_。 – Armali
已更正,謝謝 – Ovesh