Thumbnail for System Command OPPE Q2: Step-by-Step Solution & Logic Building | IITM by Devloper Harsh

System Command OPPE Q2: Step-by-Step Solution & Logic Building | IITM

Devloper Harsh

11m 30s2,642 words~14 min read
Auto-Generated

[0:00]तो दोस्तों, अब हम लोग आ गए हैं एनपीपी क्वेश्चन नंबर टू पे, और चलिए क्वेश्चन देख लेते हैं। तो यहां पे आप अगर देखिएगा तो आपका क्वेश्चन दिया हुआ है यू हैव बीन प्रोवाइडेड विद अ लिस्ट ऑफ आइटम ऑफ़ शॉपिंग बिल इन एचटीएमएल। द लिस्ट हैज़ नेम ऑफ़ द आइटम, प्राइस एंड क्वांटिटी। राइट अ बैश स्क्रिप्ट script.sh टू कंप्यूट द टोटल बिल अमाउंट।

[0:16]देखने से ये काफी सिंपल क्वेश्चन लगता है कि आपको एक लिस्ट ऑफ आइटम्स दिया हुआ है शॉपिंग बिल का एचटीएमएल फॉर्मेट में और उसके अंदर आइटम प्राइस और क्वांटिटी दिया हुआ है। आपको एक बैस स्क्रिप्ट लिखना है जो कि टोटल बिल अमाउंट को कैलकुलेट करे। टोटल बिल अमाउंट कैलकुलेट करना है, हेडेक नहीं है यहां पे।

[0:32]यहां पे दिक्कत है कि आपको ये डेटा को पार्स करना है। तो ये क्वेश्चन इनडायरेक्ट वे में सीधे रेड एक्स का क्वेश्चन है। बिकॉज़ रेड एक्स में आप इस चीज को पार्स कर सकते हैं।

[0:41]तो अगर आप देखिएगा तो आइटम आपका बैटरीज है, लेकिन उसके बीच में आपको एक एचटीएमएल टैग दिया हुआ है। अगेन ये जो टैग दिया हुआ है ये आपके हेल्प के लिए दिया हुआ है। इस टैग की मदद से आप चीजों को बहुत सिंपलीफाई कर सकते हैं।

[0:52]सिमिलरली प्राइस जो है वो यहां पे दिया हुआ है इन दोनों स्पैन टैग के बीचों-बीच और क्वांटिटी दिया हुआ है इन दोनों स्पैन टैग के बीचों-बीच।

[1:00]तो अगर आप एंड ऑफ द डे देखिएगा तो आपका है क्या यहां पे? आपका जो स्पैन क्लास आइटम नेम है उसके बाद आपका बैटरीज आता है और फिर आपका स्पैन आता है।

[1:09]तो यानी कि या तो आप इस स्लैश स्पैन से पहले का जो आइटम है वो एक्सेस कर लीजिए। तो ये पूरा आ जाएगा। वो हमें नहीं चाहिए। तो हमें क्या चाहिए? हमें चाहिए कि इस स्पैन क्लास आइटम नेम इतना तक हमारा एक्सेस हो।

[1:21]और इसके बाद जो भी आ रहा है टिल वी डोंट मीट दिस लेस देन स्लैश हम लोगों को इसे फेच करते रहना है। तो इसे हमें बैटरीज मिल जाएगा।

[1:31]सिमिलरली यहां पे देखिएगा तो आइटम प्राइस मिल जाएगा। आइटम प्राइस इस तरीके से मिलेगा कि हम लोग ये वाला पूरा का पूरा के बाद का जो भी वैल्यू है उसको हम लोग कैप्चर करेंगे और ये वाला जो है इसका हम लोगों को कोई जरूरत नहीं है। हम लोग इसको भी स्किप कर देंगे।

[1:47]और तब तक इसको कैप्चर करेंगे जब तक लेस देन और स्लैश हम लोग अचीव नहीं कर लेते। तो ये चीज करने के लिए हमारे पास एक स्पेसिफिक टाइप का ग्रेप होता है जिसको हम लोग पर्ल ग्रेप बोलते हैं। आप नॉर्मल ग्रेप से भी कर सकते हैं बट पर्ल ग्रेप से ये चीजें बहुत इजी हो जाती है।

[2:00]क्योंकि हमारे पास उसमें ऑप्शन होता है लुक बिहाइंड एंड लुक अहेड का। क्वांटिटी के लिए भी हम लोग सेम कर सकते हैं स्पैन क्लास इक्वल टू आइटम क्वांटिटी।

[2:08]यहां तक हम लोग इग्नोर करेंगे। इसके बाद का जो भी जस्ट आइटम होगा उसको कैप्चर करेंगे और फिर लेस देन इक्वल टू से पहले का स्टॉप कर देंगे। तो ये हमारा सिंपल रेग एक्स पैटर्न अगर आप बना लीजिएगा तो ये चीजें इजी होंगी।

[2:18]और अगर आप देखिएगा तो यहां पे ये क्या बोल रहा है कि आपको टोटल बताना है। राइट? तो आपको इसका इंडिविजुअल टाइम्स क्वांटिटी प्लस इंडिविजुअल टाइम्स क्वांटिटी प्लस इंडिविजुअल टाइम क्वांटिटी।

[2:29]अगर आप देखिएगा तो इंस्ट्रक्शन के हिसाब से आपको एक बैस स्क्रिप्ट बनाना है script.sh SE2001/NPPE2 डायरेक्टरी के अंदर वो होना चाहिए। स्क्रिप्ट शुड बी रेड द एचटीएमएल इनपुट फ्रॉम स्टैंडर्ड इनपुट।

[2:39]स्टैंडर्ड इनपुट का मतलब है आप कीबोर्ड के थ्रू एंटर करें। ठीक है? उसके बाद स्क्रिप्ट शुड आउटपुट द रिक्वायर्ड फॉर्मेट ऑफ स्टैंडर्ड आउटपुट जो कि है एंड परसेंट वन यानी कि आपको टर्मिनल पे इसे आउटपुट करवाना है।

[2:51]तो अगर मैं आपको एंड ऑफ द डे बोलूं तो ये कुछ इस तरीके का फ्लो दिख रहा है अब मुझे। सबसे पहले हम लोगों को इनपुट लेना है। जो हम लोग देखेंगे कैसे लेना है। उसके बाद हम लोगों को प्राइस एंड क्वांटिटी को फेच करना है। उसके बाद हम लोगों को प्राइस एंड क्वांटिटी को मल्टीप्लाई करना है कंटिन्यूसली। तो हम लोगों को एक लूप क्रिएट करना होगा।

[3:12]और ये लूप क्या करेगा? ये आपका प्राइस टाइम्स क्वांटिटी को मल्टीप्लाई करेगा और जो आपका रिजल्ट आएगा उसको ये टोटल में स्टोर करेगा। उसके बाद हम लोग उसको प्रिंट करेंगे या फिर रिटर्न करेंगे जो भी हम लोगों को जरूरत है।

[3:26]अब यहां पे एक चीज है कि जो प्राइस और क्वांटिटी आपको फेच करके मिलेगा जो हम लोग पर्ल ग्रेप से मिलेगा वो एक्चुअली मल्टीपल वैल्यूज होंगे तो उसको हम लोग एक अरे के तौर पे यूज करेंगे।

[3:37]और अरे के अंदर अगर आप एट द रेट करते हैं तो इसका मतलब आप सारे के सारे इंडेक्सेस को एक्सेस कर रहे होते हैं उसके अंदर। एट द सेम पॉइंट अगर आप कुछ इस तरीके से करते हैं तो आप उसके वैल्यूज को एक्सेस कर रहे होते हैं। तो ये मैंने जस्ट बता दिया।

[3:48]आप इसे ध्यान रख सकते हैं। इसे कंट्रोल जेड करते हैं और अब अपने सॉल्यूशन पे चलते हैं। तो यहां पे लिख लेते हैं नैनो script.sh अब आपका स्क्रिप्ट रेडी है। अब यहां पे सबसे पहले हम लोग सभी एंड डालेंगे तो हैश एक्सक्लामेशन मार्क्स स्लैश बिन बैश जो कि हमारा इंटरप्रेटर का पार्ट है। ठीक है?

[4:03]इसके बाद हम लोगों को रीड करना है सारे इनपुट को तो हम लोग यहां लिखेंगे रीड ऑल इनपुट। ठीक है? तो इनपुट इज इक्वल टू डॉलर कैट। अब इसमें एक गलती होती है जो लोग करते हैं। वो ये करते हैं कि नॉन पाइथन में अगर आप देखिएगा तो आप इस तरीके से लिखते हैं राइट?

[4:16]लेकिन आप यहां पे वो नहीं कर सकते। यहां पे करिएगा तो एरर आ जाएगा। इसलिए आपको सब कुछ को सटा के रखना है। तो ये डॉलर कैट क्या कर रहा है? कैट जो है वो स्टैंडर्ड इनपुट को रीड कर रहा है।

[4:26]बाय डिफॉल्ट वो कीबोर्ड से ही लिया जाता है और डॉलर होने की वजह से उसका वैल्यू हम लोग यहां पे ले ले रहे हैं। इसके बाद गेट ओनली प्राइसेस यूजिंग लुक बिहाइंड (फाइंड आफ्टर गिवन पैटर्न)। सबसे पहली चीज हम लोग को प्राइस हैसर करना है। तो प्राइसेस इज इक्वल टू पहले तो ब्रैकेट बिकॉज़ हम लोगों को पूरे का पूरे को ग्रुप करना है।

[4:44]उसके बाद डॉलर उसके अंदर क्योंकि जो भी हम लोगों को रिटर्न मिलेगा उसको हम लोगों को वैल्यू चाहिए। इसलिए डॉलर उसके अंदर फिर हम लोग लिखेंगे ग्रेप माइनस ओ ताकि जो भी सारा आउटपुट है वो सारा चीज नहीं देखे सिर्फ जो मैच किया है वो वाला पार्ट ही हम लोगों को दिखे।

[4:59]और पी पी क्या करेगा? पर्ल ग्रेप को एक्टिव कर देगा आपके लिए। तो आप इसे पीओ इस तरीके से भी लिख सकते हैं, कोई दिक्कत नहीं है। अब इसके बाद हम लोगों को यहां पैटर्न पुट करना है। ये पैटर्न बहुत इंपोर्टेंट होगा।

[5:10]ठीक है? तो लुक बिहाइंड का पैटर्न बहुत सिंपल है। आपको यहां पे लिखना है क्वेश्चन मार्क, लेस देन, इक्वल टू। ये वाला पोर्टल पार्ट ये लुक बिहाइंड का काम करते हैं। ये वाला चीज को स्किप कर दो जो भी इसके अंदर है और इसके बाद का जो भी पार्ट आ रहा है उसको तुम कैप्चर करोगे।

[5:25]तो हम लोगों का अगर आप देखिएगा तो आउटपुट में क्या आया हमारा? आइटम प्राइस, राइट? हम लोग इसको फेच करने का कोशिश कर रहे हैं। मैं यहां पे डाल देता हूं वो हमारा आता है आइटम प्राइस।

[5:36]आइटम प्राइस के बाद हम लोगों को क्या चाहिए? यहां पे अगर आप देखिएगा तो यहां पे आपका कोटेशन है फिर ग्रेटर देन है और उसके बाद फिर रुपीज़ है, फिर डॉट है। तो हम लोगों को इतना पूरा पार्ट को स्किप करना है अभी भी। तो हम लोग इसको कंटिन्यू करते चलते हैं। तो यहां पे आपका एंड हुआ।

[5:50]उसके बाद आपका यहां पे जो हम लोगों का नॉर्मल कोट है वो बंद होता है यहां पे। उसके बाद आर एस क्योंकि हमारा यहां पे आर एस है, राइट? और फिर डॉट। डॉट भी हो गया, लेकिन अगर आप देखिएगा तो यहां पे एक व्हाइट स्पेस है और ये सिंगल व्हाइट स्पेस है हर जगह तो हम लोग ये पैटर्न को भी मैच करना पड़ेगा।

[6:07]तो इसलिए हम लोग यहां पे लिखेंगे स्लैश स्पेस। अब एक चीज मैं यहां पे आपको बताना चाहूंगा डॉट का लिटरल मतलब होता है ग्रेप में। तो इसलिए इसका मतलब हो जाएगा कि सिंगल कैरेक्टर और वो तो वो हम लोगों को नहीं चाहिए। हमें इसे बैक स्किप करना पड़ेगा।

[6:20]तो बैक स्पेस हमने कर दिया और यहां पे हमारे पास एक एक्स्ट्रा स्पेस हमने दे दिया जिससे हम लोग कैप्चर कर सकें। अब इसके बाद हम लोगों को कैप्चर क्या करना है? तो हमें कैप्चर करना है ये पर्टिकुलर नंबर पर ये कैप्चर करने के लिए हम लोग यूज करेंगे D प्लस।

[6:33]अगेन यहां पे आपको डी का एक मतलब होता है। तो इसलिए हम लोग इसको बैक स्किप करेंगे ताकि वो चीज हमारा नहीं आए। और इतना होने के बाद ये जो इनपुट है, ये हम लोग पास कर देंगे।

[6:44]तो पास करने के लिए ट्रिपल ब्रैकेट जो है ये आपको डालना है। तो यहां पे डालिए आप डॉलर इनपुट। अगेन ये लुक बिहाइंड है। ये बस इतना कर रहा है कि ये आइटम प्राइस कोड ग्रेटर देन रुपीज़ और जो भी कैरेक्टर्स हैं वो सारे फिर ब्लैंक स्पेस ये सारे को कैप्चर कर रहा है।

[7:00]और सिर्फ और सिर्फ जो नंबर्स आ रहे हैं उसके बाद उसको वो रिटर्न कर रहा है। ओके? आई होप आप ये चीज समझ गए होंगे और सिमिलर चीज हम लोग अपने क्वांटिटी के साथ भी करेंगे। बट चेंजेज होंगे उसमें। ठीक है? क्वांटिटी फिर हमारा डॉलर।

[7:13]फिर हमारा इसके अंदर आ जाएगा ग्रेप ग्रेप के अंदर माइनस पी ओ जो मैंने बताया कि क्या करता है ऑलरेडी। इसके बाद वापस से हमारा ग्रुपिंग ये ब्रैकेट ग्रुपिंग के लिए। ओके? लेस देन इक्वल टू और इस बार हमारा फोकस होगा इस चीज को एक्सेस करने का।

[7:28]राइट? आइटम क्वांटिटी और उसके बाद फिर जो वन आ रहा है वो तो यहां पे थोड़ा सा सिंटैक्स चेंज होता है। यहां पे हम लोग लिखेंगे आइटम क्यू एन टी वाई और फिर यहां पे कोट।

[7:38]क्योंकि क्वांटिटी के बाद यहां पे कोट है। फिर ग्रेटर देन। हम लोगों को यहां पे कोई रुपीज़ का खेला नहीं है। तो इसलिए हम लोग उसको पूरी तरह इग्नोर कर देंगे और अब अगर आप देखिएगा तो यहां पे सिंपली ये जो पार्ट है ये सिर्फ एक्सेस हम लोग करेंगे, राइट?

[7:54]तो यहां पे एक्सेस करने का ऑलरेडी मैंने बता दिया स्लैश डी प्लस अंदर यूज करते हैं। ओके? उसके बाद हम लोग वापस से स्टैंडर्ड इनपुट लेंगे। तो इनपुट के लिए डॉलर इनपुट।

[8:03]तो ये हो गया हमारा। अब हम लोगों को सिंपली आइटरेट करना है प्राइसेस एंड क्वांटिटी अरे। ये दोनों अरे हैं। तो आपको यहां पे q1, q2, q3 ऐसा कुछ मिलेगा। ओके? तो हम लोगों को इसके ऊपर आइटरेट करना इजी हो जाएगा इसलिए हम लोग यहां पे ये वो चीज कर रहे हैं।

[8:21]तो ये हो गया पी1, पी2, पी3। अब देखिए मैंने यहां पे क्वांटिटी अरे बोला। अब ये अरे है नहीं। हम लोगों को इसको अरे बनाना है। तो अरे बनाने का सिंपल सा तरीका ये है कि हम लोग सबसे पहले यहां पे एक वेरिएबल डिफाइन कर लेते हैं टोटल इज इक्वल टू 0।

[8:31]जो कि टोटल प्राइस को कॉस्ट लेगा और इसके बाद हम लोग यहां पे लूप करेंगे। तो फॉर आई इन यहां पे बहुत इंपोर्टेंट पार्ट आता है। ठीक है? डॉलर कर्ली ब्रेसेस एक्सक्लामेशन मार्क और प्राइसेस अरे है ना? तो प्राइसेस एट द रेट।

[8:46]ये क्या करेगा? ये सारे के सारे आपके इंडेक्स को फेच करेगा यानी कि इंडेक्स वन, इंडेक्स टू, इंडेक्स थ्री, इंडेक्स फोर उस तरीके से। ओके? तो यहां पे डॉलर प्राइसेस।

[8:57]ये हमारा हो गया और यहां पे डू बिकॉज़ हम लोग सबसे पहले प्राइसेस के अंदर जा रहे हैं। ओके? अब क्योंकि ये प्राइसेस नहीं है ये इंडेक्स है। तो ये इंडेक्स इसके लिए भी सेम होगा और इसके लिए भी सेम होगा।

[9:08]इसीलिए हम लोग डायरेक्टली एक के मदद से कर सकते हैं। आप यहां पे डॉलर क्वांटिटी एट द रेट भी करके देख सकते हैं। चेंज चेंज चेंज नहीं होंगे। ठीक है? अब हम लोग यहां टोटल पे सेव करते हैं। तो टोटल इज इक्वल टू डॉलर और ये बेसिकली एक्सप्रेशन को लिखने का तरीका है अगर आप बैश में लिख रहे हैं तो।

[9:23]इसके अंदर जो भी रहेगा वो इवैल्यूएट होता है। तो टोटल प्लस प्राइसेस ऑफ आई बिकॉज़ हमारा प्राइसेस है इनटू क्वांटिटी ऑफ आई। और ये आपका टोटल में स्टोर होगा। तो यानी कि ये टोटल जो है ये स्टोर कर रहा है टोटल कैसे प्राइसेस इनटू क्वांटिटी।

[9:44]ये चीज तो बहुत सिंपल है। ये तो पाइथन से आता है। राइट? तो ये वाला पार्ट तो ओके है। मेन पार्ट जो है वो है यहां का फेच करना। तो यहां पे आपका प्राइसेस है यहां पे आपका क्वांटिटी है। उसके बेसिस पे आप फेच कर रहे हैं। अब ये हो गया तो हमारा डन काम खत्म और यहां पे हम लोग अब प्रिंट कर देंगे।

[9:55]तो इको डॉलर टोटल। मोस्ट प्रोबेबली यहां पे हमारा कोड कंप्लीट होता है। क्योंकि हम लोग यहां पे प्रिंट कर दे रहे हैं। बट हो सकता है कि इशू आए। तो इसको पहले रन करके चेक करते हैं कि क्या इशू आ रहा है।

[10:07]उसके बाद हम लोग इसको फॉर्मली डीबग भी करते चले जाएंगे। तो एक बार चेक कर लेते हैं कि सही से हो रहा है कि नहीं। तो कैट script.sh तो ये हो गया हमारा कोड। ठीक है? अब हम लोग इसको सिंक इवैल करके देख के जाएंगे कि क्या एरर्स आते हैं। सिंक इवैल।

[10:19]तो यहां पे आप देख सकते हैं प्राइवेट टेस्ट केस वन एनवायरमेंट लाइन परमिशन। ओके। अगेन हम लोग सेम गलती कर रहे हैं जो पहले किया था। तो यहां पे लिखते हैं सीएम ओ एच मोड यू प्लस एक्स script.sh अब अगर मैं एसएलएल करूंगा तो आप देख सकते हैं कि हमारे पास एग्जीक्यूट परमिशन यहां पे दिया हुआ है। ठीक है?

[10:35]तो अब हम लोग इसको एक बार फिर से सिंक इवैल करते हैं। मोस्ट प्रोबेबली ये रॉन्ग होगा। बट लेट्स सी। हां। ये रॉन्ग है। और यहां पे प्रॉब्लम क्या आ रही है वो हम लोगों को देखना है। डॉलर ग्रैपी क्वेश्चन मार्क लेस देन इक्वल टू आइटम क्यू एन टी वाई। ओके।

[10:47]आई थिंक देयर इज समथिंग। हां। गलती है ना हमारी देखिए। ये क्यू टी वाई है और मैंने वहां क्यू एन टी वाई लिख दिया है। ये तो एक इशू होना ही था। तो लेट्स सी। हम लोग यहां पे इसको कैसे कर सकते हैं? तो ये क्यू टी वाई हो गया। कुल अब क्यू टी वाई हो गया तो ये कैप्चर हो जाएगा।

[11:00]तो आइटम क्यू टी वाई और यहां पे भी आप देख सकते हैं आइटम क्यू टी वाई है। ओके। प्रोबेबली यहां पे भी एक गलती है हमारी जो कि मैंने उस समय नजरअंदाज कर दी थी। आई थिंक नहीं करनी चाहिए थी। वो ये थी कि मैंने यहां दो बार क्वांटिटी में आई डाल दिया। ठीक है? तो क्वांटिटी आई भी हमारा फिक्स हो गया।

[11:18]मोस्ट प्रोबेबली अब ठीक हो जाना चाहिए सब। लेट्स सी। यस। वी डिड इट एंड वी पास्ड द टेस्ट केसेस। तो आई होप आप समझ गए होंगे। अगर नहीं समझे हैं तो प्लीज मुझे कमेंट सेक्शन में बता दीजिएगा। थोड़ा सा लॉजिक आपको समझना पड़ेगा कि इस तरीके से करना है।

[11:29]तो पहले मैं सजेस्ट करूंगा लॉजिक बनाइए। उसके बाद क्या टूल्स हैं आपके पास वो देखिए और फाइनली आप ये सोचिए कि किस तरीके से आप सॉल्व और सारे के सारे कोड को लिखिए। ओके? सो दैट्स इट फॉर दिस क्वेश्चन। हम चलते हैं नेक्स्ट क्वेश्चन की तरफ।

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript