कमांड लाइन उपयोगिताओं का उपयोग करके UNIX में पार्सिंग XML, JSON और नए डेटा फ़ाइल स्वरूप


9

यूनिक्स वातावरण में विभिन्न रूपों में पाठ को पार्स करने के लिए कुछ उत्कृष्ट उपकरण हैं। हालांकि, देर से, डेटा पारंपरिक (ऐतिहासिक) प्रारूपों (सीएसवी, टीएसवी, रिकॉर्ड-आधारित या कुछ अन्य सीमांकित-आधारित) में नहीं है, यह पहले हुआ करता था। इन दिनों XML / JSON जैसे संरचित स्वरूपों में डेटा का आदान-प्रदान किया जाता है।

मुझे पता है कि कुछ अच्छे उपकरण हैं जैसे कि sed, awk और Perl जो लगभग किसी भी प्रकार के डेटा को बाहर चबा सकते हैं। हालांकि, इस तरह के संरचित आंकड़ों के साथ काम करने के लिए, अक्सर किसी को एक पूरा कार्यक्रम लिखना पड़ता है, और, जानकारी निकालने के लिए उपलब्ध थोड़ा समय दिया जाता है, किसी को बैठना पड़ता है और जो कोई भी प्रश्न करना चाहता है उसके पूरे तर्क का पता लगा सकता है। इसे नीचे प्रोग्राम करें। कभी-कभी यह ठीक नहीं है - मूल रूप से क्योंकि उन फ़ाइलों से निकाली गई जानकारी आगे के काम के लिए इनपुट के रूप में कार्य करती है; उचित समाधान की खोज करने और उसे कोड करने में लगने वाले समय के कारण भी। डेटा को खोजने, क्वेरी और डंप करने के लिए पर्याप्त स्विच के साथ कमांड लाइन टूल की आवश्यकता होती है।

मैं ऐसे टूल की तलाश कर रहा हूं जो XML / JSON या संरचित डेटा के अन्य रूपों को लेते हैं और इसे अन्य प्रारूपों जैसे csv, आदि में डंप करते हैं, ताकि वहां से कोई भी अन्य कमांड का उपयोग कर सके ताकि कोई भी जानकारी प्राप्त कर सके।

क्या कोई कमांड लाइन उपयोगिताओं हैं जो आप जानते हैं कि इस तरह की नौकरी क्या है? क्या इसके लिए पहले से ही awk / पर्ल स्क्रिप्ट उपलब्ध हैं?

जवाबों:


5

xml के लिए http://xmlstar.sourceforge.net/ है

XMLStarlet कमांड लाइन यूटिलिटीज (टूल्स) का एक सेट है, जिसका उपयोग XML दस्तावेज़ों और फाइलों को बदलने, क्वेरी करने, सत्यापन करने और संपादित करने के लिए किया जा सकता है, इसी तरह से शेल कमांड के सरल सेट का उपयोग करते हुए इसे यूनिक्स ग्रीप, सेड के उपयोग से सादे टेक्स्ट फ़ाइलों के लिए किया जाता है। awk, diff, patch, join, etc. कमांड्स।

आप भी xsltprocऔर इसी तरह के उपकरण ( saxon) का उपयोग कर सकते हैं ।

json के लिए: मुझे भी लगता है कि इसका बेहतर उपयोग सिर्फ अजगर, माणिक, पर्ल और इसे बदलना है।


jq: खोल में JSON को पार्स करने के लिए एक अच्छा उपकरण है stedolan.github.io/jq
Kusalananda

4

मुझे लगता है कि पर्ल, पायथन या रूबी मॉड्यूल का उपयोग इसके लिए सफलतापूर्वक किया जा सकता है। और इनमें से कोई भी स्क्रिप्टिंग के लिए इस्तेमाल किया जा सकता है।


मेरा पूरा मुद्दा एक पटकथा लिखने से बचना था और इसके बजाय एक कमांड का उपयोग करने की कोशिश करना था। स्क्रिप्ट लिखना इस प्रश्न के पूरे उद्देश्य को हरा देगा।
कमल

क्या आप ruby -e 'program text'"स्क्रिप्ट लिखना" मानते हैं ?
एलेक्स

मुझे लगता है कि मैंने आपको ठीक से नहीं समझा। मुझे 'प्रोग्राम टेक्स्ट' कहां मिल सकता है?
कमल

@ कमाल: दुन्नो। गूगल? पसंद की अपनी स्क्रिप्टिंग भाषा के लिए डॉक्स? यदि आप पर्ल का उपयोग कर रहे हैं तो CPAN का विचार आता है।
एलेक्स

@kamaal: जैसे-जैसे डेटा प्रारूप अधिक परिष्कृत होता जाता है, संचालन के विवरण लंबे समय तक मिलते हैं। उदाहरण के लिए, perl -0777 -MJSON -e '$t=from_json(<STDIN>); do_something_with($t)'आप JSON को कम से कम उपद्रव के साथ संसाधित करते हैं। आपको अभी भी कंप्यूटर को यह बताना होगा कि किसी तरह डेटा का क्या करना है।
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.