2016-05-24 5 views
2

私はrpm -qa | grep somethingの結果を得て、私はrpm -ql result-i-gotを得た結果を1行に入れたいと思います。引数のコマンドのパイプ結果

私は仕事にこれを発見した:

rpm -ql $(rpm -qa | grep something) 

のだろうか、配管の任意のより良い、あるいは別の方法は、私が上記の書いたものと同じ結果を得るために、この結果がありますか?おかげさまで

+1

は私に非常にエレガントに見えるようにそれを使用して... –

答えて

3

xargsはそのために作られています:あなたが実際にrpm -qaにワイルドカード引数を提供することができます

rpm -qa | grep something | xargs rpm -ql 
3

。これは、別のコマンドにパイプする必要があるので、代わりにrpm -qa | grep somethingの、あなたがシェルグロブパターンとしてアスタリスクを拡大からシェルを防ぐために

rpm -qa '*something*' 

使用単一引用符または二重引用符を使用することができますを回避することができます。

例:

$ rpm -qa '*vim*' 
vim-enhanced-7.0.109-7.2.el5 
vim-minimal-7.0.109-7.2.el5 
vim-common-7.0.109-7.2.el5 

上記のコマンドは、関連するパッケージ内のファイルをリストする-lオプションと組み合わせることができます。このコマンドで

rpm -qal '*vim*' 

一つの問題は、複数のパッケージが返された場合、それはへのパッケージ名が印刷されていないとして、どのパッケージに属しているファイルは明確ではないということです。パッケージ名を出力に含めるには、--queryformatオプションを追加して、情報の印刷方法を細かく制御できます。例えば、以下の例では、そのパッケージが提供するファイルのリストが続くハイフン・マイナス記号の列で下線付きパッケージの名前、印刷します

rpm -qal --qf "\n%{NAME}\n--------\n" '*vim*' 

rpm manページには、カスタマイズの詳細情報を持っていますコマンドの出力。


あなたは、多くの場合、このコマンドを使用して自分自身を見つける場合は、エイリアスにそれを回すことができます:

alias rpmlist='rpm -qal --qf "\n%{NAME}\n--------\n"' 

ので

rpmlist '*vim*' | less 
+1

確かに別の方法です、私はあなたが提案したエイリアスを採用しましたが、私の質問の主な焦点は配管でした:)ありがとう! – Moshe

関連する問題