फाइल में लाइव-एफ 1 का आउटपुट कैसे लिखें


10

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

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

मैं यह कैसे कर सकता हूं?

2 डी कंसोल खोलकर और कुछ कमांड का उपयोग करके?

सेटर -डंप कमांड के साथ काम करने के लिए इसे प्राप्त नहीं कर सकते।

जवाबों:


8

live-f1टर्मिनल नियंत्रण वर्ण (ncurses) का उपयोग करके नए डेटा के साथ स्क्रीन को फिर से बनाता है, जैसे topया mtr। इसीलिए जब आप किसी फ़ाइल या गैर टर्मिनल डिवाइस पर रीडायरेक्ट करते हैं तो आपको यह सब कबाड़ दिखाई देता है।

दुर्भाग्यवश, live-f1आउटपुट को सहेजने और बाद में आँकड़ों के लिए डेटा निकालने के लिए उपयुक्त विकल्प उपलब्ध नहीं कराता है। यदि आप अभी भी इसे बाद में फिर से खेलना के लिए आउटपुट को सहेजना चाहते हैं, तो आप उपयोग कर सकते हैं script

यह लाइव-एफ 1 रिकॉर्ड करेगा और दो फाइलें, टाइपस्क्रिप्ट और टाइमफाइल बनाएगा।

script -c live-f1 -t 2> timingfile

यह आउटपुट रीप्ले करेगा

scriptreplay timingfile

7

कुछ तरीके हैं जो मैं आउटपुट को एक फ़ाइल में कैप्चर करने के लिए उपयोग करता हूं जो आपके लिए उपयोग का हो सकता है।

script

यह एक सबस्क्रिप्शन बनाता है और इसमें सभी आउटपुट डालता है। तो script, फिर आप जो भी चाहते हैं, उसके बाद exitअपना सबस्क्रिप्शन समाप्त करें और आपका आउटपुट "टाइपस्क्रिप्ट" नामक फ़ाइल में होगा

tee

आप एक पाइप के सभी कहीं और गूंज कर सकते हैं। तो आप teeअपने मानक आउटपुट को फ़ाइल में बंद कर सकते हैं :

$ mycommand | tee myoutput

यदि आपको मानक त्रुटि पकड़ने की आवश्यकता है, तो इसे पुनः निर्देशित करें:

$ mycommand 2>&1 | tee myoutput

6

इस तरह कार्यक्रम चलाने के बारे में कैसे:

program > /path/to/file

इस के उत्पादन में पुनर्निर्देश programकरने के लिए /path/to/fileतुरन्त।

और अगर आप अपने टर्मिनल में आउटपुट रखना चाहते हैं, साथ ही इसे एक फाइल में सेव करें। देखें कि क्या आउटपुट को रीडायरेक्ट करने का कोई तरीका है और अभी भी यह स्टडआउट गया है?


त्वरित उत्तर के लिए धन्यवाद। यह लगभग काम करता है, केवल फ़ाइल सामग्री थोड़ा मंगाई गई है। यह HTML में होना चाहिए, लेकिन इसके बजाय, जब मैं फ़ाइल खोलता हूं तो कुछ अजीब प्रतीक होते हैं, स्क्रीनशॉट देखें: upload.ee/image/1223166/ss_01.png । प्रोग्राम का नाम live-f1 है।
गुस्ताव

जो मजाकिया लगता है। क्या आप सुनिश्चित हैं कि प्रोग्राम केवल HTML आउटपुट करता है? क्या कोई एनीमेशन या कुछ अजीब है?
फुनेहे

यह केवल मानक उत्पादन को पुनर्निर्देशित करेगा। क्या मानक त्रुटि आवश्यक है?
फहीम मीठा

2
@Gustav वहां भी एएनएसआई कोड फंसे हुए हैं। या तो आपका एप्लिकेशन किसी प्रकार के प्रगति काउंटर को आउटपुट करता है (जो जैसा दिखता है वैसा ही होता है), या इसके आउटपुट को रंग देता है, या इसी तरह का। यदि इसे बंद करने का कोई तरीका है, तो आपको स्वच्छ आउटपुट पर कब्जा करने के लिए इसका उपयोग करने की आवश्यकता होगी। आपका एप्लिकेशन HTML आउटपुट नहीं करता है, लेकिन HTML कैप्चर करने के लिए आपको आउटपुट ट्रांसलेट करने के लिए कुछ अन्य एप्लिकेशन की आवश्यकता होगी।
मैथ्यू शार्ले

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

3

आप इसकी लॉगिंग कार्यक्षमता के साथ GNU स्क्रीन का उपयोग कर सकते हैं । ध्यान दें कि कमांड आपको यह नियंत्रित करने की अनुमति देता है कि आउटपुट डिस्क पर कितनी बार फ्लश किया जाता है। स्क्रीन उपयोगकर्ता के मैनुअल से:logfile flush secs

- कमांड: लॉगफाइल फ्लश सेक

नाम परिभाषित करता है कि लॉग फ़ाइलों को मिलेगा। डिफ़ॉल्ट 'स्क्रीनलॉग।% N' है। दूसरा रूप बदलता है सेकंड-स्क्रीन की संख्या लॉग-इन बफर को फाइल-सिस्टम में फ्लश करने से पहले इंतजार करेगी। अनुपस्थित मान 10 सेकंड है।


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