के कॉलम को कैसे कट करें मेरे पास सीएसवी फाइलों (लगभग 250) का एक सेट है, प्रत्येक में 300 से 500 रिकॉर्ड हैं। मुझे प्रत्येक फ़ाइल से 2 या 3 कॉलम कटौती करने और इसे किसी अन्य स्टोर में स्टोर करने की आवश्यकता है। मैं उबंटू ओएस का उपयोग कर रहा हूं। क्या कमांड या उपयोगिता में ऐसा करने का कोई तरीका है?सीएसवी
सीएसवी
उत्तर
यदि आप जानते हैं कि कॉलम डेलीमीटर फ़ील्ड के अंदर नहीं होता है, तो आप कट का उपयोग कर सकते हैं।
$ cat in.csv
foo,bar,baz
qux,quux,quuux
$ cut -d, -f2,3 < in.csv
bar,baz
quux,quuux
आप सभी इनपुट फ़ाइलों पर 'लूप' के लिए खोल बिल्डिन 'का उपयोग कर सकते हैं।
यदि फ़ील्ड में डिलीमीटर हो सकता है, तो आपको एक ऐसी लाइब्रेरी मिलनी चाहिए जो CSV फ़ाइलों को पार्स कर सके। आम तौर पर, सामान्य उद्देश्य स्क्रिप्टिंग भाषाओं में उनके मानक पुस्तकालय में एक CSV मॉड्यूल शामिल होगा।
Ruby: require 'csv'
Python: import csv
Perl: use Text::ParseWords;
अपने फ़ील्ड को अल्पविराम या नई-पंक्तियों को शामिल हैं, तो आप एक सहायक कार्यक्रम मैं कटौती (और अन्य यूनिक्स पाठ प्रसंस्करण उपकरण) ठीक से डेटा के साथ काम करने के लिए अनुमति देने के लिए लिखा उपयोग कर सकते हैं।
https://github.com/dbro/csvquote
इस कार्यक्रम उद्धृत क्षेत्रों के अंदर विशेष वर्ण पाता है, और अस्थायी रूप से उन्हें वर्ण जो कटौती कार्यक्रम को भ्रमित नहीं होंगे अमुद्रणीय साथ बदल देता है। फिर कटौती के बाद उन्हें बहाल कर दिया जाता है।
Lutz 'समाधान हो जाएगा:
csvquote in.csv | cut -d, -f2,3 | csvquote -u
हां यह मेरे लिए बहुत अच्छा काम करता है: https://stackoverflow.com/questions/17199311/how-to-delete-a-column-columns-of-a-csv-file-which-has-cell-values-with -एक-स्ट्रिंग/29134579 # 29134579 – nono
यदि आप ssconvert
इस्तेमाल किया सीएसवी प्राप्त करने के लिए आप प्रयास कर सकते हैं:
ssconvert -O 'separator="|"' "file.xls" "file.txt"
सूचना TXT विस्तार बजाय सीएसवी, इस तरह से होगा का उपयोग करें Gnumeric_stf: stf_assistantके बजाय निर्यातक Gnumeric_stf: stf_csv, जो आपको विकल्प (-O
पैरामीटर) का उपयोग करने देता है। अन्यथा आपको मिलेगा फ़ाइल सेवर विकल्प त्रुटि नहीं लेता है। पाइप चरित्र अधिक संभावना नहीं है, लेकिन आप पहले जांचना चाहेंगे।
तो फिर तुम इसका नाम बदलना और पसंद कर सकते हैं:
cat file.csv | cut -d "|" -f3 | sort | uniq -c | sort -rn | head
- अन्य विकल्प उदाहरण:
-O 'eol=unix separator=; format=preserve charset=UTF-8 locale=en_US transliterate-mode=transliterate quoting-mode=never'
। - A solution with AWK v4+।
ssconvert
man page।
- 1. सीएसवी
- 2. सीएसवी
- 3. सीएसवी
- 4. सीएसवी
- 5. सीएसवी
- 6. सीएसवी
- 7. सीएसवी
- 8. सीएसवी मानों से हटाएं और सीएसवी
- 9. सीएसवी फ़ाइल
- 10. रुबी सीएसवी
- 11. सीएसवी/एक्सेल
- 12. सीएसवी प्रारूप
- 13. सीएसवी डेटा
- 14. सीएसवी देवदार
- 15. एक सीएसवी
- 16. सीएसवी रूपांतरण
- 17. सीएसवी अजगर
- 18. रूबी में सीएसवी लिखें 1.9 और सीएसवी :: लेखक
- 19. एक MySQL सीएसवी निर्यात से PostgreSQL सीएसवी आयात?
- 20. अजगर सीएसवी सवाल
- 21. एक सीएसवी फ़ाइल
- 22. पाइथन सीएसवी को SQLite
- 23. सीएसवी को एक्सएलएस
- 24. सी # सीएसवी से डाटाबेस
- 25. सीएसवी मॉडल मैपिंग
- 26. सीएसवी डाउनलोड एचटीएम
- 27. टाई :: हैंडल :: सीएसवी
- 28. अजगर सीएसवी मॉड्यूल - उद्धरण
- 29. सीएसवी बनाम MySQL प्रदर्शन
- 30. एक सीएसवी कॉलम
आप सभी फ़ाइलों को कुछ हद तक संसाधित कर सकते हैं जैसे: "* .csv" ढूंढें। xargs cut -d, -f2,3> out.csv – pixelbeat
यदि आप अल्पविराम से छुटकारा पाने के लिए या इसे किसी अन्य चीज़ में बदलना चाहते हैं तो आप 'कटआउट' के '--output-delimiter = STRING' विकल्प का उपयोग कर सकते हैं। –
इस उत्तर के साथ मुख्य समस्या यह है कि 'कट' उद्धृत फ़ील्ड को संभाल नहीं करता है जिसमें डेलीमीटर शामिल है। यदि आपकी सीएसवी फ़ाइल में डेटा है जो ऐसा करता है, तो आपको कुछ और उपयोग करने की आवश्यकता होगी। –