कमांड मॅजिक्स: कन्सोलसह फाइल्स आणि तार कसे हाताळावेत

प्रोग्रामिंगद्वारे कॉसमॉसमुळे आपल्याला आनंद होईल. स्रोत: पिक्सबे

विकसक म्हणून, बर्‍याच वेळा पुन्हा पुन्हा गोष्टी केल्या जातात ज्यासाठी आपला अनमोल वेळ खर्च येतो. या प्रक्रिया स्वयंचलित आणि ऑप्टिमाइझ करण्याचे मार्ग शोधणे सहसा अतिशय फायदेशीर असते.

आम्ही बर्‍याचदा संबंधित बिट्ससाठी प्रोग्रामचे आउटपुट शोधतो आणि त्यास व्यक्तिचलितरित्या दुसर्‍या फाईलमध्ये हलवितो, वाक्यातील सर्व अपरकेस अक्षरे लहान अक्षरे बदलण्यासाठी किंवा फाईलमधून सर्व संख्यात्मक वर्ण काढून टाकतो. कंटाळवाणा, पुनरावृत्ती करणारी आणि त्रुटी-प्रवण कार्ये जेव्हा आपण हातांनी करतो तेव्हा डोकेदुखी होऊ शकते आणि डोकेदुखी होऊ शकते.

आमचा विश्वास आहे की आपण या गोष्टी व्यक्तिचलितरित्या प्रोग्राम करू नयेत. बहुतेक वेळेस ही समस्या उद्भवते जिथे संपूर्ण स्क्रिप्ट कोड करणे, अगदी पायथनमध्येही, ओव्हरकिलसारखे वाटते. हाताने हे करण्यास खूप वेळ लागेल किंवा बर्‍याच चुका निर्माण होतील.

सुदैवाने, यापैकी बर्‍याच कामे आधीपासून आपल्यापेक्षा बरेच हुशार लोक लिहिली आहेत. आपल्याकडे फक्त काही कीस्ट्रोक पोहोचू शकतात. ते सर्व शेल कमांड्स म्हणून उपलब्ध आहेत आणि मी आज त्यापैकी काही दाखवणार आहे. जर आपल्याला अद्याप टर्मिनल माहित नसेल आणि आपल्या फाईल सिस्टमवर कसे जायचे किंवा त्याच कार्ये कशी करावीत याची कल्पना नसल्यास, आपण टर्मिनलची माझी मागील माहिती वाचली पाहिजे.

तर मी कोडिंग सहाय्यकाला माहित असले पाहिजे अशा सर्वात उपयुक्त स्पेलची मला सहजपणे ओळख करुन देतो.

एको: कन्सोलमध्ये एक स्ट्रिंग दिसेल

आपण भविष्य सांगण्याची आणि परिवर्तनाच्या कलेत स्वत: चे विसर्जन करण्यापूर्वी, वास्तविक प्रोग्रामरने समन्स बजावण्याच्या हस्तकलावर प्रभुत्व ठेवले पाहिजे. स्ट्रिंगनंतर एको कमांड कन्सोल आउटपुटला फक्त इनपुट म्हणून निर्दिष्ट केले जाते. उदाहरणार्थ, खालील ओळ चालवा:

एको "हॅलो वर्ल्ड!"

खालील आउटपुट तयार करते:

हॅलो वर्ल्ड!

हे त्या क्षणी क्षुल्लक वाटू शकते, परंतु मी वचन देतो की हे भविष्यात उपयुक्त ठरेल.

मांजर: इनपुटचे खरे स्वरूप दर्शवते

फाईलसाठी मांजर आदेशास कॉल केल्यास त्याची सामग्री टर्मिनलवर येते. उदाहरणार्थ, आपल्याकडे "file1.txt" आणि "file2.txt" फायली असलेली एक निर्देशिका आहे. दोन्ही फायलींमध्ये "ही फाईल आहे" मजकूर आहे. व्यवसाय:

मांजर file1.txt

फाईलमधील सामग्री आउटपुट करते:

ही एक फाईल आहे

लक्षात घ्या की मांजर कमांडचा युक्तिवाद कोणतेही शेल स्टाईल नाव असू शकतो. कोणतीही स्ट्रिंग शोधण्यासाठी आम्ही वाईल्डकार्ड कॅरेक्टर * वापरु शकतो. अशा प्रकारे आपण एकामागून एक विविध फाईल्सची सामग्री आउटपुट करू शकतो.

मांजर * .txt

या प्रकरणात, * दोन्ही फाईल 1 आणि फाइल 2 शी जुळतात आणि दोन्ही .txt सह समाप्त होते, म्हणून दोन्ही मुद्रित केले जातात. या कमांडचे आउटपुट असेल

ही एक फाईल आहे

ही आज्ञा लक्षात ठेवा - मांजरीचे पिल्लूशिवाय कोणतेही युद्धक खरोखर पूर्ण होत नाही.

ग्रेप: गवतच्या सुईला शोधा

ग्रेप सह आपल्याला स्ट्रिंगमध्ये एक सबस्ट्रिंग सापडेल. कॉल करीत आहे

ग्रीप फाइलनाव

निर्दिष्ट केलेल्या फाइलची प्रत्येक ओळ दर्शवते ज्यात निर्दिष्ट केलेली स्ट्रिंग प्रदर्शित केली जाते.

आम्हाला ते फक्त अचूक स्वरूपातच दिसू नये तर एका वेगळ्या प्रकरणात देखील हवे असल्यास, केस दुर्लक्षित करण्यासाठी आम्ही -i युक्तिवाद पास केला पाहिजे.

जेव्हा आम्ही एकाच कमांडसह वेगवेगळ्या फायलींसाठी विनंती करतो, तेव्हा आपल्याला पॅटर्नशी जुळणार्‍या सर्व फाईल्सची सूची मिळेल. उदाहरणार्थ, मागील निर्देशिका कॉल करा

grep "this" * .txt

मार्ग देईल

file1.txt: ही फाईल आहे tile2.txt: ही एक फाईल आहे

सेड: एक स्ट्रिंग दुसर्‍या मध्ये बदलू

सेड कमांड ट्रान्समिटेशन स्पेल आहे. ते एका फाईलची सामग्री घेते आणि त्यास दुसर्‍या फाईलमध्ये रुपांतरीत करते. ते वापरण्याचे बरेच मार्ग आहेत. त्यापैकी काहींबद्दल मी फारच थोड्या माहितीसाठी कबूल करतो. (जर आपण हे वाचत असाल आणि मी ज्या चांगल्या गोष्टींचा उल्लेख करीत नाही अशा गोष्टींचा विचार करीत असेल तर कृपया मला टिप्पण्यांमध्ये सांगा, मला नवीन युक्त्या शिकायला आवडतील.) सर्वात सामान्य म्हणजे स्ट्रिंगचे भाग बदलणे ज्याच्या पॅटर्नशी जुळते भिन्न तार.

हे एका कॉलद्वारे केले जाते

sed “s / regexp / बदल / वैकल्पिक_फ्लाग” फाइल नाव

हे काय करेलः

  • फाईल फाइलनाव मध्ये नियमित अभिव्यक्तीशी जुळणारी कोणतीही ओळ पहा
  • या ओळीचा प्रथम नियमित अभिव्यक्ति घटना बदलून बदला
  • कन्सोलवर परिणामी स्ट्रिंग आउटपुट करा (फाइल न बदलता!).

आम्ही शेवटी जी ध्वजांकन निर्दिष्ट केल्यास (जसे की एस / जुने / नवीन / जी), सर्व उदाहरणे प्रत्येक ओळीवर आढळतात आणि फक्त प्रथमच नाहीत. युक्तिवाद -i (जागेसाठी) प्रत्यक्षात इनपुट फाइलवर लिहितो.

उदाहरणार्थ, कॉल करा

sed “s / is / was / g” file1.txt

जारी केले आहे

ती फाईल होती

जर आपल्याला फक्त संपूर्ण शब्द जुळवायचे असतील तर आपण नियमित अभिव्यक्तीभोवती खालीलप्रमाणे \ बी वर्ण ठेवले पाहिजे

sed “s / \ to \ b / was / g” file1.txt

शेवटी मिळविण्यासाठी

ती फाईल होती

आमची जादू एकत्र करा: ऑपरेटर

आता आपण त्याच्या वैशिष्ट्यपूर्ण जादूने चार नवीन जादूई शाळा प्राप्त केल्या आहेत. पण खरा जादूगार होण्यासाठी आपल्याला जादूचे धागे विलक्षण पद्धतींमध्ये बांधायला शिकले पाहिजेत. हे करण्यासाठी, आपण तीन शक्तिशाली साधने वापरता.

| (पाईप) ऑपरेटर

पाईप ऑपरेटर मागील कमांडमधून आउटपुट घेते आणि त्यास खालील कमांडच्या इनपुटवर लिहिते, पाइपलाइन तयार करते. उदाहरणार्थ, कॉल करा

मांजर * .txt | ग्रीप "आहे"

सर्वप्रथम चालू कार्यकारी निर्देशिकेतील मजकूर फायलींची सामग्री पुनर्प्राप्त करते. नंतर शेवटी मुद्रित करण्यापूर्वी प्रत्येक ओळ ओळ आहे ज्यात "आहे" ही स्ट्रिंग आहे.

> ऑपरेटर (लिहा)

लेखन ऑपरेटर त्याचे इनपुट त्याच्या आउटपुटवर लिहितो - सहसा फाइल.

"ही फाईल आहे" सामग्रीसह मजकूर फाईल तयार करण्याचा एक जलद मार्ग म्हणजे कॉल करणे होय

इको "ही फाईल आहे"> some_file.txt

हे संपूर्ण जादू समन कसे तयार केले गेले ते आपण पाहता? मी तुम्हाला सांगितले की ते उपयुक्त ठरेल.

लक्षात ठेवा फाइल आधीपासूनच अस्तित्वात असल्यास, सामग्री विचारल्याशिवाय अधिलिखित केली जाईल. आम्हाला पाहिजे ते नसल्यास, आम्हाला आपले शेवटचे साधन वापरावे लागेल:

>> ऑपरेटर (परिशिष्ट)

>> ऑपरेटर त्याचे इनपुट त्याच्या आउटपुटवर लिहितो जोपर्यंत त्यात आधीपासून असलेल्या गोष्टींचे ओव्हरराईट होत नाही.

तेच, आम्ही या ट्यूटोरियलद्वारे पूर्ण केले आहे आणि आपण आता एक प्रशिक्षु जादूगार आहात. आपल्या नवीन जादूच्या कौशल्यांचा सराव करा आणि नंतर धन्यवाद. जर आपण अडकले किंवा काही झेंडे काय केले हे आठवत नसेल तर मॅन पृष्ठांमधील या सर्व आज्ञा शोधण्याचे लक्षात ठेवा - विझार्ड त्याच्या पुस्तकांमधून कधीही गायब झाला नाही.

जर आपल्याला आदेश आणि वापरांबद्दल अधिक जाणून घ्यायचे असेल तर मी ओरेलीच्या बॅश कूकबुकची सुरूवात करण्यासाठी चांगली जागा म्हणून शिफारस करतो.

अधिक शिकवण्या, टिपा आणि युक्त्यासाठी मी माध्यम वर अनुसरण करा. हा लेख माझ्या नवीन वेबसाइट डेटास्टफ.टेक वर देखील प्रकाशित केला होता. ऐका!