コマンド完了出力をリダイレクトするにはどうすればよいですか?


25

コマンドラインでは、コマンドの後に>or |演算子を使用して、コマンドの出力をファイルまたは別のコマンドにリダイレクトまたはパイプできます。出力をファイルにリダイレクトしたいというあまり標準的ではない状況に遭遇しましたが、リダイレクトする機会がないようです:

新しいターミナルにいるとき、

[chiliNUT ~]$

Tab最初に何も入力せずに押すと、尋ねられます

display all 1725 possibilities? (y or n)

そして、を入力するとy、さまざまなコマンドの素敵な長いリストが表示されます。この出力をファイルにリダイレクトまたはパイプするにはどうすればよいですか?> myfile.txtどこにでも入力する機会がないようです。

使用してCentOSのは(決勝)6.4をリリース

回答:


26

あなたは組み込みのものを利用することができますcompgen

compgen: compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat]
[-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix]
[-S suffix] [word]

    Display possible completions depending on the options.

    Intended to be used from within a shell function generating possible
    completions.  If the optional WORD argument is supplied, matches against
    WORD are generated.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

TABプロンプトで、コマンド、シェル組み込みコマンド、キーワード、エイリアス、および関数がリストされます。だからあなたは言うことができます:

compgen -cbka -A function | grep '^y' > myfile.txt

yTABシェルプロンプトでファイルに入力したときに表示されるすべてのオプションを取得しますmyfile.txt

grepパイプラインを削除して、可能なすべてのコマンド、関数、...をファイルに取り込みます。

compgen -cbka -A function > myfile.txt

1
驚くばかり!書かれているように、答えは実際には文字yで始まるコマンド/ファイルのみを取得するためcompgen -cbka -A function > myfile.txt、完全な出力を取得するだけです。ありがとう!私は(明らかに)この新しい興味深い機能については知りませんでした。
chiliNUT 14年

ああ、それは賢い。
ハウケレイジング

@chiliNUTコマンドで始まるものを取得することに言及しましたy:)これはあなたが質問で示したものとほぼ一致していました!
devnull

ああ、ハ、少し誤解しました。私の質問の「y」は、実際には「yes」対「no」に対応しています。「y」と入力すると、これらのコマンドがすべて出力されます。「n」と入力すると、何も出力されません。
chiliNUT 14年

2
@chiliNUT答えを更新して、それも反映しました。
devnull
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.