किसी फ़ाइल में टर्मिनल सामग्री कैसे लिखें


13

यहां मेरी स्थिति है: मैं टर्मिनल खोलता हूं और प्रोग्राम चलाता हूं जो टर्मिनल (पाठ) में लाइव फीड प्रदर्शित करता है जो हर पल बदलता है। केवल "एन्टर" कुंजी का उपयोग किया जा सकता है, जबकि यह प्रोग्राम चल रहा है (यह उस प्रोग्राम से बाहर निकलता है)। इसलिए आप कंसोल में कुछ और नहीं टाइप कर सकते हैं।

मैं उस टर्मिनल कंटेंट को एक फाइल में लिखना चाहूंगा, जैसे हर सेकंड के बाद।

मैं यह कैसे करुं? 2 डी कंसोल खोलकर और कुछ कमांड का उपयोग करके? यह सेटर -डम्प कमांड के साथ काम नहीं कर सकता।


1
हम्म, यह कौन सा एप्लिकेशन है? यदि आपने अच्छी तरह से जाँच नहीं की है, तो आपको यह सुनिश्चित करना चाहिए कि आवेदन में कहीं न कहीं ouput को बचाने का विकल्प है।
सेवेरो राज

की जाँच की। यह नहीं है वरना मुझे यह समस्या नहीं होती। कार्यक्रम लाइव-एफ 1, लॉन्चपैड.net
गुस्ताव

जवाबों:


16

आप teeकार्यक्रम ( विवरण ) के लिए अपने उत्पादन को पाइप कर सकते हैं :

my_program ... | tee my_program.log

यह टर्मिनल पर ouput दिखाएगा, लेकिन इसे फ़ाइल में भी लिखें my_program.log


1 उत्तर के समान परिणाम। : /
गुस्ताव

1
आपके द्वारा पोस्ट किया गया स्क्रीनशॉट ऐसा दिखता है कि इसमें बहुत सारे टर्मिनल एस्केप सीक्वेंस हैं। लॉन्चपैड की जानकारी से, यह ncurses का उपयोग करता है (मैंने स्रोत को डाउनलोड किया bzr branch lp:live-f1, फिर में देख रहा था README)। क्या आप TERMगूंगे ( export TERM=dumb) को सेट करके रंगों के बिना कार्यक्रम चला सकते हैं ? स्रोत में एक TODOफ़ाइल भी है , ड्राइवरों के इतिहास को रखने के लिए इच्छा सूची पर ध्यान देने योग्य है। हो सकता है कि आप डेवलपर्स से संपर्क करके देख सकें कि वे क्या योजना बना रहे हैं या यदि आपके पास परिणाम बचाने के लिए कोई रास्ता है।
स्टैबर्ट रॉबर्ट

12

जब आप अपने कंसोल पर आउटपुट देखने के बजाय टर्मिनल से अपनी कमांड निष्पादित कर रहे हैं, तो आप इसे सीधे एक फ़ाइल पर रीडायरेक्ट कर सकते हैं। जबकि प्रोग्राम चलता है आपका आउटपुट फ़ाइल में लिखा जा रहा है। एक उदाहरण देता है कि आप अपने फ़ोल्डर की सामग्री को ls कमांड के साथ list.txt नामक फ़ाइल में लिखना चाहते हैं

ls > list.txt

>ऑपरेटर को अपनी आवश्यकताओं के अनुसार अपने उत्पादन पुनर्निर्देश।


Thx, यह काम करता है लेकिन आंशिक रूप से। सामग्री HTML होनी चाहिए, लेकिन जब मैं फ़ाइल को खोलता हूं, तो यह कुछ इस तरह से होता है (फ़ाइल से स्निप): VETTEL [21G (B [m [39; 49m)। प्रोग्राम का नाम "live-f1" है। live-f1: live_f1_dump। log
गुस्ताव

@Gustav का मतलब है कि कंसोल में यह html प्रिंट करता है और उपरोक्त लाइनों को फाइल में?
टॉपलेस

हाँ। यह तब होता है जब मैं आपके सुझाए गए आदेश को चलाता हूं : upload.ee/image/1223166/ss_01.png । मेरा लक्ष्य एक फ़ाइल में लाइव-एफ 1 फीड से फॉर्मूला 1 ड्राइवरों के पदों को प्राप्त करना है। मुझे पिछले साल यह काम मिला था 1 टर्मिनल में लाइव-एफ 1 प्रोग्राम चलाने से, फिर 2 टर्मिनल को फायर करना और कुछ कमांड का उपयोग करके 1 टर्मिनल स्क्रीन पर कब्जा कर लिया और इसे एक फ़ाइल में सहेज लिया (पिछले साल की फ़ाइल से अपलोड करें: upload.ee/download/1223347 / 0b6545ce227661452c8/html.log )। कमांड कुछ इस तरह था: ट्टी "1 टर्मिनल पॉइंटर" "फ़ाइलनाम"। संभव है कि यह कुछ और था कि "ट्टी" जो मैंने उसके लिए इस्तेमाल किया था।
गुस्ताव

2

scriptकमांड का उपयोग करके देखें । दुर्भाग्य से, यह प्रतिलिपि में बहुत सारे नियंत्रण चरित्र gobbledegook डालता है। हालाँकि, यदि आप NCSSM CS साइट पर इस लिंक को देखते हैं तो आपको समस्या का एक अपूर्ण लेकिन बहुत अच्छा समाधान मिलेगा।

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