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


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.