Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

बाशो के साथ फाइलें पढ़ें और लिखें

जब आप बैश के साथ स्क्रिप्टिंग कर रहे होते हैं, तो कभी-कभी आपको किसी फ़ाइल से डेटा पढ़ने या डेटा लिखने की आवश्यकता होती है। कभी-कभी फ़ाइल में कॉन्फ़िगरेशन विकल्प हो सकते हैं, और दूसरी बार फ़ाइल वह डेटा होती है जिसे आपका उपयोगकर्ता आपके एप्लिकेशन के साथ बना रहा है। प्रत्येक भाषा इस कार्य को थोड़ा अलग तरीके से संभालती है, और यह आलेख दर्शाता है कि बैश और अन्य पॉज़िक्स शेल के साथ डेटा फ़ाइलों को कैसे संभालना है।

बैश इंस्टॉल करें

यदि आप लिनक्स पर हैं, तो संभवतः आपके पास पहले से ही बैश है। यदि नहीं, तो आप इसे अपने सॉफ़्टवेयर रिपॉजिटरी में पा सकते हैं।

MacOS पर, आप डिफ़ॉल्ट टर्मिनल का उपयोग कर सकते हैं, या तो बैश या Zsh, जो आपके द्वारा चलाए जा रहे macOS संस्करण पर निर्भर करता है।

विंडोज़ पर, बैश का अनुभव करने के कई तरीके हैं, जिसमें माइक्रोसॉफ्ट के आधिकारिक रूप से समर्थित विंडोज सबसिस्टम फॉर लिनक्स (डब्लूएसएल) शामिल हैं।

बैश इंस्टॉल करने के बाद, अपना पसंदीदा टेक्स्ट एडिटर खोलें और कोड के लिए तैयार हो जाएं।

बैश वाली फ़ाइल पढ़ना

शेल होने के अलावा, बैश एक स्क्रिप्टिंग भाषा है। बैश से डेटा पढ़ने के कई तरीके हैं:आप एक प्रकार की डेटा स्ट्रीम बना सकते हैं और आउटपुट को पार्स कर सकते हैं, या आप डेटा को मेमोरी में लोड कर सकते हैं। दोनों जानकारी अंतर्ग्रहण करने के मान्य तरीके हैं, लेकिन प्रत्येक के उपयोग के मामले काफी विशिष्ट हैं।

बैश में फ़ाइल स्रोत करें

जब आप बैश में किसी फ़ाइल को "स्रोत" करते हैं, तो आप बैश को फ़ाइल की सामग्री को इस उम्मीद के साथ पढ़ने का कारण बनते हैं कि इसमें वैध डेटा है जो बैश अपने स्थापित डेटा मॉडल में फिट हो सकता है। आप किसी भी पुरानी फ़ाइल से डेटा स्रोत नहीं करेंगे, लेकिन आप कॉन्फ़िगरेशन फ़ाइलों और कार्यों को पढ़ने के लिए इस पद्धति का उपयोग कर सकते हैं।

उदाहरण के लिए, example.sh called नाम की एक फाइल बनाएं और इसमें इसे दर्ज करें:

#!/bin/sh

greet opensource.com

echo "The meaning of life is $var"

इसे विफल देखने के लिए कोड चलाएँ:

$ bash ./example.sh 
./example.sh: line 3: greet: command not found
The meaning of life is

बैश के पास greet नामक कमांड नहीं है , इसलिए वह उस पंक्ति को निष्पादित नहीं कर सका, और उसके पास var . नामक चर का कोई रिकॉर्ड नहीं है , इसलिए जीवन का कोई ज्ञात अर्थ नहीं है। इस समस्या को ठीक करने के लिए include.sh . नाम की एक फाइल बनाएं :

greet() {
    echo "Hello ${1}"
}

var=42

अपने example.sh . को संशोधित करें एक source . शामिल करने के लिए स्क्रिप्ट आदेश:

#!/bin/sh

source include.sh

greet opensource.com

echo "The meaning of life is $var"

इसे काम करते देखने के लिए स्क्रिप्ट चलाएँ:

$ bash ./example.sh 
Hello opensource.com
The meaning of life is 42

greet कमांड को आपके शेल वातावरण में लाया जाता है क्योंकि इसे include.sh . में परिभाषित किया गया है फ़ाइल, और यह तर्क को भी पहचानता है (opensource.com इस उदाहरण में)। चर var सेट और आयात भी किया जाता है।

बैश में फ़ाइल को पार्स करें

डेटा को "बैश" में प्राप्त करने का दूसरा तरीका इसे डेटा स्ट्रीम के रूप में पार्स करना है। इसे करने के कई तरीके हैं। आप grep . का उपयोग कर सकते हैं या cat या कोई भी आदेश जो डेटा लेता है और इसे stdout में पाइप करता है। वैकल्पिक रूप से, आप बैश में जो बनाया गया है उसका उपयोग कर सकते हैं:रीडायरेक्ट। अपने आप में पुनर्निर्देशन बहुत उपयोगी नहीं है, इसलिए इस उदाहरण में, मैं अंतर्निहित echo का भी उपयोग करता हूं रीडायरेक्ट के परिणाम प्रिंट करने का आदेश:

#!/bin/sh

echo $( < include.sh )

इसे stream.sh के रूप में सेव करें और परिणाम देखने के लिए इसे चलाएं:

$ bash ./stream.sh 
greet() { echo "Hello ${1}" } var=42
$

include.sh . में प्रत्येक पंक्ति के लिए फ़ाइल, बैश प्रिंट (या गूँज) आपके टर्मिनल पर लाइन। इसे पहले उपयुक्त पार्सर में पाइप करना बैश के साथ डेटा पढ़ने का एक आम तरीका है। उदाहरण के लिए, एक पल के लिए मान लें कि include.sh एक कॉन्फ़िगरेशन फ़ाइल है जिसमें कुंजी और मान जोड़े एक समान (= . द्वारा अलग किए गए हैं) ) संकेत। आप awk . के साथ मान प्राप्त कर सकते हैं या यहां तक ​​कि cut :

#!/bin/sh

myVar=`grep var include.sh | cut -d'=' -f2`

echo $myVar

स्क्रिप्ट चलाने का प्रयास करें:

$ bash ./stream.sh
42

बैश वाली फ़ाइल में डेटा लिखना

चाहे आप अपने उपयोगकर्ता द्वारा अपने एप्लिकेशन के साथ बनाए गए डेटा को संग्रहीत कर रहे हों या उपयोगकर्ता ने किसी एप्लिकेशन में क्या किया (उदाहरण के लिए, गेम सेव या हाल ही में खेले गए गाने) के बारे में मेटाडेटा, बाद में उपयोग के लिए डेटा संग्रहीत करने के कई अच्छे कारण हैं। बैश में, आप सामान्य शेल पुनर्निर्देशन का उपयोग करके डेटा को फ़ाइलों में सहेज सकते हैं।

उदाहरण के लिए, आउटपुट वाली एक नई फ़ाइल बनाने के लिए, एकल रीडायरेक्ट टोकन का उपयोग करें:

#!/bin/sh

TZ=UTC
date > date.txt

स्क्रिप्ट को कुछ बार चलाएँ:

$ bash ./date.sh
$ cat date.txt
Tue Feb 23 22:25:06 UTC 2021
$ bash ./date.sh
$ cat date.txt
Tue Feb 23 22:25:12 UTC 2021

डेटा जोड़ने के लिए, डबल रीडायरेक्ट टोकन का उपयोग करें:

#!/bin/sh

TZ=UTC
date >> date.txt

स्क्रिप्ट को कुछ बार चलाएँ:

$ bash ./date.sh
$ bash ./date.sh
$ bash ./date.sh
$ cat date.txt
Tue Feb 23 22:25:12 UTC 2021
Tue Feb 23 22:25:17 UTC 2021
Tue Feb 23 22:25:19 UTC 2021
Tue Feb 23 22:25:22 UTC 2021

आसान प्रोग्रामिंग के लिए बैश

सीखने में आसान होने पर बैश उत्कृष्टता प्राप्त करता है, क्योंकि केवल कुछ बुनियादी अवधारणाओं के साथ, आप जटिल कार्यक्रम बना सकते हैं। संपूर्ण दस्तावेज़ीकरण के लिए, GNU.org पर उत्कृष्ट बैश दस्तावेज़ देखें।


  1. फाइलबीट और इलास्टिक्स खोज इनजेस्ट पाइपलाइनों के साथ सीएसवी फाइलों को पार्स करना

    Elasticsearch 5 में सबसे बढ़िया नई सुविधाओं में से एक इनेस्ट नोड है, जो Elasticsearch क्लस्टर में कुछ लॉगस्टैश-शैली प्रसंस्करण जोड़ता है, इसलिए इसे करने के लिए किसी अन्य सेवा और/या बुनियादी ढांचे की आवश्यकता के बिना अनुक्रमित होने से पहले डेटा को रूपांतरित किया जा सकता है। कुछ समय पहले, हमने लॉगस्टै

  1. रूबी में फाइलें कैसे पढ़ें और लिखें (उदाहरण के साथ)

    आज आप रूबी में फाइलों को पढ़ना और लिखना सीखेंगे ताकि आप सामग्री को निकाल सकें, नई फाइलें बना सकें और अपनी जरूरत की जानकारी पा सकें! यहां बताया गया है कि हम क्या कवर करने जा रहे हैं : सामग्री 1 रूबी में फ़ाइलें कैसे पढ़ें 2 रूबी में फ़ाइल को कैसे लिखें 3 रूबी फ़ाइल विधियाँ 4 निर्देशिका संचालन 5

  1. फ़ाइल इतिहास के साथ Windows 10 में डेटा कैसे बचाएं और पुनर्स्थापित करें

    हम समझते हैं कि हमारी महत्वपूर्ण फाइलों और दस्तावेजों को अनपेक्षित स्थितियों जैसे हार्ड ड्राइव विफलता, पावर आउटेज या कुछ अन्य मुद्दों से बचाना कितना महत्वपूर्ण है। अधिमानतः, हमें नियमित रूप से अपने डेटा का बैकअप लेना चाहिए। हालाँकि, जब विंडोज ओएस के बारे में बात की जाती है, तो आप नियमित आधार पर सभी