बैश में CSV फ़ाइल पढ़ें

Baisa Mem Csv Fa Ila Parhem



CSV का फुल फॉर्म कॉमा सेपरेटेड वैल्यू है। CSV फ़ाइल का उपयोग कोडर द्वारा कई उद्देश्यों के लिए किया जाता है जो डेटा को अर्ध-संरचना सारणीबद्ध प्रारूप में संग्रहीत करते हैं। फ़ाइल की प्रत्येक पंक्ति को तालिका की एक पंक्ति के रूप में माना जाता है और पंक्ति के प्रत्येक क्षेत्र को CSV फ़ाइल में अल्पविराम (,) द्वारा अलग किया जाता है। बैश में CSV फ़ाइलों को पढ़ने के कई तरीके मौजूद हैं जिन्हें इस ट्यूटोरियल में समझाया गया है।

पूर्वापेक्षाएँ:

इस ट्यूटोरियल के उदाहरण का अभ्यास करने से पहले आपको एक 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 फ़ाइल की पंक्तियों और स्तंभों की गणना करने के तरीके इस ट्यूटोरियल में दिखाए गए हैं।