इस आउटपुट प्रारूप में अन्य कमांड लाइन प्रोग्राम क्या हैं?


1

मैंने hg logकमांड-लाइन आउटपुट को पार्स करने के लिए एक छोटा सा प्रोग्राम लिखा था, जो ऐसा दिखता है:

changeset:   90:abcdef012345
tag:         tip
user:        me
date:        Sat Apr 30 17:42:05 2011 -0700
summary:     Made another change

changeset:   89:def012345abc
user:        me
date:        Sat Apr 30 16:52:19 2011 -0700
summary:     Made a change

वास्तव में, मेरा कार्यक्रम किसी भी "कुंजी: मूल्य" जोड़े को पार्स करने के लिए पर्याप्त सामान्य है, जब तक कि प्रत्येक नए रिकॉर्ड को एक रिक्त रेखा द्वारा अलग किया जाता है।

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


एक अस्पष्ट जो मैं अक्सर उपयोग करता हूं apcaccessवह मेरे यूपीएस के आँकड़े देखने के लिए है। जब तक आप उन में से एक है, हालांकि अच्छा उत्पादन नहीं होगा।
LawrenceC

जवाबों:


0

दो कमांड, ट्र और सेड के साथ, आप इसे और अधिक रिकॉर्ड जैसे प्रारूप में बदल सकते हैं:

echo 'changeset:   90echo 'changeset:   90:abcdef012345
tag:         tip
user:        me
date:        Sat Apr 30 17:42:05 2011 -0700
summary:     Made another change

changeset:   89:def012345abc
user:        me
date:        Sat Apr 30 16:52:19 2011 -0700
summary:     Made a change
' | tr '\n' ';' | sed 's/;;/\n/' 
changeset:   90:abcdef012345;tag:         tip;user:        me;date:        Sat Apr 30 17:42:05 2011 -0700;summary:     Made another change
changeset:   89:def012345abc;user:        me;date:        Sat Apr 30 16:52:19 2011 -0700;summary:     Made a change;;

हालाँकि, यदि यह आपका प्रारूप है, तो मैं एक अधिक CSV जैसे प्रारूप में जाऊंगा। आपको हर पंक्ति में शीर्षक को दोहराने की आवश्यकता नहीं है, और 'के बजाय टैब के साथ;' या ',' (यदि आपको सामग्री के रूप में टैब की आवश्यकता नहीं है), तो आपको एक प्रारूप मिलता है, जो हाथ से पार्स करने के लिए, पंक्तियों की तुलना करने के लिए, grep के साथ पंक्तियों की तुलना करने के लिए, और लिबरऑफिस के साथ ग्राफ बनाने के लिए या डेटा डालने के लिए बहुत अच्छा है। एक डेटाबेस में।

यदि आपके पास अधिक अस्थिर प्रारूप है, तो xml बेहतर हो सकता है - प्रति से नहीं, बल्कि इसलिए कि वहाँ बहुत सारे उपकरण हैं।

में लिख "यूनिक्स प्रोग्रामिंग की कला ESRs के अध्याय 5 , हो सकता है आप अपने काम के लिए कुछ प्रेरणा पाते हैं।


या तो मुझे समझ में नहीं आता है, या आप नहीं समझते हैं। यह hgमेरा स्वरूप है, मेरा नहीं। मैं पहले से ही इसे ठीक-ठीक बता सकता हूं, और मैंने अपने प्रोग्राम को सिस्टम पर चलाने के लिए लिखा है, जिसमें ट्र और सेड नहीं हो सकता है। मैं अन्य कार्यक्रमों की तलाश कर रहा हूं जो इस आउटपुट प्रारूप को साझा करते हैं। मैंने TAOUP पढ़ा है, लेकिन मैं इस समय गैर-यूनिक्स प्लेटफार्मों की परंपरा का पालन कर रहा हूं: यदि पाठ मेरे लिए पर्याप्त था तो मैंने एक पार्सर नहीं लिखा होगा! :-)
केन

किस प्लेटफॉर्म में tr और sed नहीं है? आप गन्नू-टूल्स के लिए win32- पोर्ट्स जानते हैं ?
उपयोगकर्ता अज्ञात

विंडोज सर्वर पर मुझे समय-समय पर काम करना पड़ता है, लेकिन यह पूरी तरह से अप्रासंगिक है क्योंकि सवाल यह था कि अन्य प्रोग्राम उस प्रारूप को क्या बनाते हैं, न कि hg logआउटपुट को सीएसवी में कैसे परिवर्तित करें।
केन

अच्छी तरह से - CSV- फ़ाइलों को पार्स करने के लिए लाखों कार्यक्रम हैं, इसलिए आप इसे CSV में स्वरूपित करते हैं, आप इसे वहां से किसी अन्य चीज़ को बदलने के लिए बदल सकते हैं - इसे SQL डेटाबेस में डालें, इसे OpenOfficeCalc या किसी अन्य स्प्रेडशीट प्रोग्राम के साथ खोलें।
उपयोगकर्ता अज्ञात

मुझे यकीन नहीं है कि आपको क्या लगता है कि मैं क्या करने की कोशिश कर रहा हूं। मैं hg logSQL डेटाबेस में आउटपुट डालने या स्प्रेडशीट के साथ इसे खोलने के बारे में परवाह नहीं करता हूं, और अगर मैं गलती से किसी भी तरह से यह धारणा देता हूं, तो मैं माफी चाहता हूं। hg logप्रश्न में आउटपुट का उपयोग केवल एक उदाहरण के रूप में था कि मैं क्या देख रहा हूं , न कि मुझे क्या प्रक्रिया की आवश्यकता है।
केन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.