पूर्वापेक्षाएँ:
इस ट्यूटोरियल के उदाहरण का अभ्यास करने से पहले आपको एक CSV फ़ाइल बनानी होगी। इस ट्यूटोरियल में उपयोग की जाने वाली स्क्रिप्ट के आउटपुट की जांच करने के लिए निम्नलिखित सामग्री के साथ 'ग्राहक.csv' नाम की एक CSV फ़ाइल बनाएँ। इस फाइल में 3 तृतीय 4 के क्षेत्र वां रेखा और 6 वां लाइन खाली हैं।
आईडी, नाम, ईमेल, पता, मोबाइल101 , जफर इकबाल, जफर @ जीमेल.कॉम, 9 / एक धानमंडी ढाका, + 8801762341425
102 कमल हुसैन, कमल @ जीमेल.कॉम, 120 Mirpur Dhaka, + 8801988675345
103 नीरोब चौधरी 33 / 2 Jigatola Dhaka, + 8801754532312
104 , Farheen Hasan , farheen @ gmail.com < ए href = 'खाली' > , ए > 10 कधलबागुन ढाका, + 8801512875634
105 , एमडी रहीम,, 2 / बी धानमंडी ढाका, + 8801700453423
बैश में CSV फ़ाइल को पढ़ने के विभिन्न तरीके
बैश स्क्रिप्ट का उपयोग करके CSV फ़ाइल को विभिन्न तरीकों से पार्स किया जा सकता है। ट्यूटोरियल के इस भाग में “customers.csv” फ़ाइल को पढ़ने के विभिन्न तरीके दिखाए गए हैं।
उदाहरण 1: CSV फ़ाइल की मूल सामग्री पढ़ें
निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएँ जो 'जबकि' लूप का उपयोग करके 'ग्राहक.csv' फ़ाइल की पूरी सामग्री को पढ़ती है:
#!/बिन/बैश
# फाइल का नाम सेट करें
फ़ाइल का नाम = 'ग्राहक.सीएसवी'
# प्रत्येक पुनरावृत्ति में फ़ाइल की प्रत्येक पंक्ति पढ़ें
जबकि पढ़ना आंकड़े
करना
# लाइन प्रिंट करें
गूंज $ डेटा
पूर्ण < $ फ़ाइल नाम
स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है:
उदाहरण 2: शीर्षलेख को कैपिटलाइज़ करके CSV फ़ाइल पढ़ें
'ग्राहक.csv' फ़ाइल की पहली पंक्ति में फ़ाइल का शीर्षक होता है। निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएँ जो फ़ाइल की पहली पंक्ति को कैपिटलाइज़ करने के बाद 'customers.csv' फ़ाइल की सामग्री को प्रिंट करती है। हेडर को कैपिटलाइज़ करने के बाद फ़ाइल की सामग्री को प्रिंट करने के लिए स्क्रिप्ट में 'awk' कमांड का उपयोग किया जाता है। स्क्रिप्ट में FS और OFS मानों में 'customers.csv' फ़ाइल पढ़ने और 'updatedcustomers.csv' फ़ाइल लिखने के लिए अल्पविराम (,) असाइन किया गया है। 'कैट' कमांड का उपयोग दोनों फाइलों की सामग्री को प्रिंट करने के लिए किया जाता है।
printf 'मूल फ़ाइल: \एन '# CSV फ़ाइल की मूल सामग्री को प्रिंट करें
बिल्ली cstomers.csv
# शीर्षलेख को बड़ा करने के बाद एक नई CSV फ़ाइल बनाएँ
awk 'शुरू{FS=',';OFS=','}
{
अगर (एनआर == 1)
प्रिंट टॉपर ($ 0)
अन्य
छपाई
}' Customers.csv > अद्यतन ग्राहक.सीएसवी
printf ' \एन संशोधित फ़ाइल: \एन '
#नई CSV फ़ाइल प्रिंट करें
बिल्ली अद्यतन ग्राहक.सीएसवी
स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है:
उदाहरण 3: CSV फ़ाइल के खाली फ़ील्ड को 'कोई नहीं' से बदलें
निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएं जो खाली फ़ील्ड को 'कोई नहीं' मान के साथ संशोधित करने के बाद 'ग्राहक.csv' फ़ाइल की सामग्री को प्रिंट करता है। इस फ़ाइल में दो फ़ील्ड खाली हैं जिनका उल्लेख निम्नलिखित में किया गया है। खाली फ़ील्ड को संशोधित करने के बाद फ़ाइल की सामग्री को प्रिंट करने के लिए स्क्रिप्ट में 'awk' कमांड का उपयोग किया जाता है। स्क्रिप्ट में FS और OFS मानों में 'customers.csv' फ़ाइल पढ़ने और 'updatedcustomers.csv' फ़ाइल लिखने के लिए अल्पविराम (,) असाइन किया गया है। 'कैट' कमांड का उपयोग दोनों फाइलों की सामग्री को सारणीबद्ध प्रारूप में प्रिंट करने के लिए किया जाता है।
printf 'मूल फ़ाइल: \एन '# CSV फ़ाइल की मूल सामग्री को सारणीबद्ध रूप में प्रिंट करें
बिल्ली Customers.csv | कॉलम-एस, -टी
awk 'शुरू{FS=',';OFS=','}
{
के लिए (फ़ील्ड = 1; फ़ील्ड <= एनएफ; फ़ील्ड ++)
{
अगर ($ फ़ील्ड == '') $ फ़ील्ड = 'कोई नहीं'
}
छपाई
}' Customers.csv > संशोधित ग्राहक2.csv
printf ' \एन संशोधित फ़ाइल: \एन '
# नई CSV फ़ाइल को सारणीबद्ध रूप में प्रिंट करें
बिल्ली संशोधित ग्राहक2.csv | कॉलम-एस, -टी
स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है:
उदाहरण 4: CSV फ़ाइल की कुल पंक्तियों और स्तंभों की संख्या प्रिंट करें
निम्नलिखित स्क्रिप्ट के साथ एक बैश फ़ाइल बनाएँ जो 'ग्राहक.csv' फ़ाइल में पंक्तियों और स्तंभों की कुल संख्या की गणना करती है। फ़ाइल की कुल पंक्तियों को प्रिंट करने के लिए NR चर का उपयोग किया जाता है। फ़ाइल के कुल फ़ील्ड को प्रिंट करने के लिए NF चर का उपयोग किया जाता है।
printf 'मूल फ़ाइल: \एन '# CSV फ़ाइल की मूल सामग्री को प्रिंट करें
बिल्ली Customers.csv
गूंज
गूंज -एन 'कुल पंक्तियाँ:'
awk -एफ, 'अंत {प्रिंट एनआर}' Customers.csv
गूंज -एन 'कुल स्तंभ:'
awk -एफ, 'END{प्रिंट NF}' Customers.csv
स्क्रिप्ट निष्पादित करने के बाद निम्न आउटपुट दिखाई देता है। फ़ाइल में कुल पंक्तियाँ 6 हैं और फ़ाइल के कुल फ़ील्ड 5 हैं जो आउटपुट में मुद्रित हैं:
निष्कर्ष
CSV फ़ाइल को पढ़ने, CSV फ़ाइल को संशोधित करने और बैश स्क्रिप्ट का उपयोग करके CSV फ़ाइल की पंक्तियों और स्तंभों की गणना करने के तरीके इस ट्यूटोरियल में दिखाए गए हैं।