4

xargsファイルのリストを取得し、それらのファイルごとにコマンドを 1 回実行するために使用できることはわかっています。

私がやりたいのは、ファイルのリストを単一の引数リストとしてコマンドに渡すことです。例えば:

ls | tail -10

出力

a
b
c
d

しかし、次のようにリストを受け取るコマンドにパイプしたいと思います。

command a b c d

xargsが仕事に最適なツールだと思いますが、何でも受け入れます。覚えやすいほどよい。

4

3 に答える 3

3

引用符と変数展開を使用するだけです:

command "$(ls | tail)"

テストする ( command):

#!/bin/bash
echo $1

出力:

 a b c d
于 2013-07-03T08:19:09.737 に答える
1

あなたは試すことができます:

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
于 2013-07-03T08:11:54.390 に答える
1

ただ

ls|xargs command

しましょう。もちろん、リストがコマンド ラインの長さの制限を超えていない場合は、

command `ls`

も十分です。

于 2013-07-03T08:05:39.017 に答える