मैं आउटपुट को पूरा करने के लिए कैसे निर्देशित करूं?


25

कमांड लाइन पर, मैं कमांड के बाद >या |ऑपरेटर का उपयोग करके किसी फ़ाइल या किसी अन्य कमांड पर कमांड के आउटपुट को पुनर्निर्देशित या पाइप कर सकता हूं । मैं एक कम मानक स्थिति में आया हूं कि मैं आउटपुट को किसी फ़ाइल में पुनर्निर्देशित करना चाहूंगा, लेकिन मुझे इसे पुनर्निर्देशित करने की अपारदर्शिता नहीं है:

जब एक नए टर्मिनल पर,

[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 मैंने उल्लेख किया है कि कमांड उन लोगों के साथ शुरू होगा y:) यह आपके द्वारा प्रश्न में दिखाए गए के अनुरूप था!
देवनाउल

ओह, हा, थोड़ा गलत समझा। मेरे प्रश्न में 'y' वास्तव में 'हां' बनाम 'नहीं' से मेल खाता है; मैं 'y' दर्ज करता हूं और यह उन सभी कमांड को बाहर निकालता है, मैं 'n' दर्ज करता हूं और यह कुछ भी आउटपुट नहीं करता है।
मिर्ची

2
@chiliNUT मैंने उस उत्तर को प्रतिबिंबित करने के लिए अद्यतन किया है।
devnull
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.