टेक्स्ट डॉक्यूमेंट खोजें और संपादित करें, और मैक टर्मिनल में वेरिएबल पर असाइन करें


0

इसलिए यदि मैंने system_profile को एक टेक्स्ट डॉक्यूमेंट में सहेजा है, तो मैं सभी लेकिन एक सेक्शन को कैसे हटा पाऊंगा? या इसके चारों ओर उद्धरण हटाएं? फिर मैं कुछ चीज़ों की जाँच करने के लिए चर को कुछ पाठ कैसे निर्दिष्ट करूँगा?

उदाहरण: यदि मैं एक टेक्स्ट डॉक्यूमेंट में system_profile को सेव करता हूं, तो मैं कैसे खोज कर पाऊंगा कि मेरे पास कितना राम है, और इसे वेरिएबल 'ram' में असाइन करें? इसके अलावा, क्या मैं कुछ पात्रों को खोज और हटा सकता था? उदाहरण के लिए स्क्रिप्ट में सभी उद्धरण चिह्न हटा दिए गए हैं?


क्या आप अपने प्रश्न को संपादित कर सकते हैं कि आप क्या चाहते हैं? आपका प्रश्न उत्तर देने के लिए बहुत अस्पष्ट है।
Chris Ting

मैं क्रिस से सहमत हूं। क्या आप इस बात का नमूना प्रदान कर सकते हैं कि system_profile कैसा दिखेगा? नमूना को यह सुनिश्चित करने के लिए यथासंभव सटीक होना चाहिए कि समाधान सही तरीके से काम करेगा।
Bandit

यह प्रश्न वास्तव में तीन अलग-अलग प्रश्न हैं। आपने पाठ खोज करने, फ़ाइल संपादित करने और चर असाइनमेंट के बारे में पूछा है। कृपया अपने प्रश्न अलग से पूछें।
Chris Ting

जवाबों:


0

आप grep का उपयोग करके किसी फ़ाइल में शब्द खोज सकते हैं।

उदाहरण:

cat system_profile | grep ram

यह उस लाइन को लौटा देगा जिसमें system_profile है जिसमें पैटर्न "ram" है। संभवतः आपको कमांड चलाने और रिटर्न देखने से पहले यह समझने की ज़रूरत होगी कि आगे क्या करना है। यदि आप चाहते हैं कि फ़ाइल का एक हिस्सा है, तो आप एक खोज कर सकते हैं और अपने आउटपुट को एक नई फ़ाइल पर पुनर्निर्देशित कर सकते हैं।

उदाहरण:

cat system_profile | grep ram -A 5 > system_ram

यह आपको वह रेखा देगा जिसमें "राम" और उसके बाद की पांच पंक्तियाँ हैं।

आप उपयोगिता sed के माध्यम से पात्रों को बदल सकते हैं।

उदाहरण:

sed -i 's/old/new/g' system_profile

दोहरे उद्धरण चिह्नों को समाप्त करने के लिए ("):

sed -i 's/"//g' system_profile

क्या अगली पंक्ति या कुछ पंक्तियों को भी शामिल करना संभव है? या पूर्व की लाइनें? और अगर यह कई बार दिखाई दे तो मैं कैसे निर्दिष्ट करूं कि कौन सा अलगाव है? फिर इसे एक चर में सहेजने के बारे में क्या?
JShoe

जैसा कि दस्यु ने दिखाया है, आपके खोज सकारात्मक होने से पहले और बाद में लाइनों को शामिल करना संभव है। यदि आप अपनी फ़ाइल में उन पंक्तियों को पोस्ट करना चाहते हैं, जिन्हें आप सहेजना चाहते हैं, तो हम आपकी मदद कर सकते हैं।
Chris Ting

0

मुझे पूरी तरह से यकीन नहीं है कि विभिन्न घटनाओं के बीच कैसे चयन किया जाए, लेकिन उम्मीद है कि इससे मदद मिलेगी।

x=$(cat system_profile | grep ram -A 5)

उपरोक्त कोड राम और उसके बाद अगली 5 लाइनों वाली लाइन को बचाएगा। पहले लाइनों के लिए, का उपयोग करें -a के बजाय -A

मेरा अनुमान grep सीमित संख्या में लाइनों का चयन करने का समर्थन करता है (यानी पहली घटना के बाद रुक जाता है ram )। यदि वह है जो आप के लिए देख रहे हैं, का उपयोग करें -m 1 (जहां किसी को रोकने से पहले होने वाली घटनाओं की संख्या है) grep के लिए विकल्प।

वैकल्पिक रूप से, आप अपनी grep खोज को संशोधित कर सकते हैं यदि दो (या अधिक) लाइनें चयनित हो रही हैं जो समान नहीं हैं। बस बदल दो ram जो कुछ भी आपको मेल करने की आवश्यकता है (इसे एक शब्द से अधिक होने पर उद्धरण में डालें)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.