टर्मिनलसह: नियमित अभिव्यक्ती II वापरणे: बदलणे

माईसेल्फ मध्ये मागील लेख मी तुम्हाला मूलभूत स्तरावर सांगितले आहे की नियमित अभिव्यक्तीचे प्रत्येक वापरले जाणारे विशेष वर्ण कसे कार्य करतात. या नियमित अभिव्यक्त्यांद्वारे मजकूर फायली किंवा इतर आदेशांच्या आऊटपुटमध्ये जटिल शोध घेणे शक्य आहे. या लेखात मी फक्त एक मजकूर दुसर्‍यासाठी बदलण्याऐवजी अधिक सामर्थ्यवान मजकूर शोधण्यासाठी आणि पुनर्स्थित करण्यासाठी सेड कमांड कसे वापरावे हे सांगणार आहे.

ग्रीप कमांडबद्दल अधिक माहिती

मी सेडबद्दल बोलण्यापूर्वी, मी मागील लेखात जे स्पष्ट केले होते ते पूर्ण करण्यासाठी ग्रीप कमांडबद्दल थोडी अधिक टिप्पणी देऊ इच्छित आहे. मी सांगत असलेली प्रत्येक गोष्ट यास देखील संबंधित असेल. नंतर आपण या आणि शोधांमधील संबंध पाहू.

नियमित अभिव्यक्ती एकत्र करणे

मागील लेखात मी ज्या विशेष वर्णांबद्दल बोललो आहे त्यापैकी बर्‍याच खास वर्णांना केवळ इतर पात्रांशीच नव्हे तर संपूर्ण नियमित अभिव्यक्तींसह एकत्र केले जाऊ शकते. असे करण्याचा मार्ग म्हणजे सुब्ज एक्सप्रेशन्स तयार करण्यासाठी कंस वापरणे. चला त्याचे एक उदाहरण पाहूया. आपण चाचणीसाठी वापरू शकणारा मजकूर डाउनलोड करुन प्रारंभ करूया. हे वाक्यांशांची यादी आहे. त्यासाठी आपण पुढील कमांड वापरणार आहोत.

curl http://artigoo.com/lista-de-frases-comparativas-comicas 2>/dev/null | sed -n 's/.*\(.*\.\)<\/p>/\1/gp' > frases

 हे आपल्याला त्या निर्देशिकेत सोडेल जेथे आपण «वाक्यांश named नावाची फाईल लॉन्च कराल. आपण हे पहाण्यासाठी उघडू शकता आणि थोडेसे हसू शकता. 🙂

आता समजा, आपल्याला अचूक 6 शब्द असलेले वाक्ये शोधायचे आहेत. प्रत्येक शब्दाशी जुळणारी नियमित अभिव्यक्ती तयार करण्यात अडचण येते. शब्द म्हणजे अक्षरांचा अनुक्रम, एकतर अपरकेस किंवा लोअरकेस, जे काहीतरी असेच असेल '[a-zA-Z]+', परंतु आपल्याला हे देखील निर्दिष्ट करावे लागेल की ही अक्षरे अक्षरे नसलेल्या इतर वर्णांद्वारे विभक्त करावीत आहेत, म्हणजे ती काहीतरी अशी असेल '[a-zA-Z]+[^a-zA-Z]+'. लक्षात ठेवा: कंसात पहिले अक्षर म्हणून "^" हे दर्शविते की आपण श्रेणींमध्ये नसलेल्या वर्णांशी जुळत करू इच्छित आहोत आणि "+" 1 किंवा अधिक वर्ण सूचित करतो.

आमच्याकडे आधीपासूनच नियमित अभिव्यक्ती आहे जी एखाद्या शब्दाशी जुळेल. 6 सह जोडण्यासाठी, ते 6 वेळा पुनरावृत्ती करावे लागेल. त्यासाठी आम्ही कळा वापरल्या पण त्या ठेवणे निरुपयोगी आहे '[a-zA-Z]+[^a-zA-Z]+{6}', कारण 6 नियमित अभिव्यक्तीच्या शेवटच्या भागाची पुनरावृत्ती करेल आणि आपल्याला जे पाहिजे आहे ते सर्व पुन्हा पुन्हा पुन्हा करायचे आहे, म्हणून आपल्याकडे काय ठेवले पाहिजे ते आहेः '([a-zA-Z]+[^a-zA-Z]+){6}'. कंस सह आम्ही एक सुपरप्रेस तयार करतो आणि कंसांसह आम्ही 6 वेळा पुनरावृत्ती करतो. आता संपूर्ण ओळ जुळण्यासाठी आपल्याला फक्त समोर "^" आणि मागच्या बाजूला "$" जोडण्याची आवश्यकता आहे. आज्ञा खालीलप्रमाणे आहेः

grep -E '^([a-zA-Z]+[^a-zA-Z]+){6}$' frases

आणि त्याचा परिणाम आम्हाला हवा होता

हे मॅकरेनापेक्षा जास्त गायले जाते. आपण लुइस अगुइलापेक्षा अधिक संपविले आहात. आपल्याकडे दगडापेक्षा संस्कृती कमी आहे. आपल्याला कॅटिटा ब्रावापेक्षा अधिक भाषा माहित आहेत. त्याच्याकडे तुतान खामनपेक्षा जास्त सुरकुत्या आहेत. चाइल्ड केअरबद्दल तुम्हाला रॅम्बोपेक्षा कमी माहिती आहे.

लक्षात घ्या की आम्ही -E पॅरामीटर ठेवला आहे कारण आम्हाला "+" कार्य करण्यासाठी विस्तारित नियमित अभिव्यक्ती वापरायच्या आहेत. जर आपण मूलभूत गोष्टी वापरल्या तर आपल्याला कोष्ठक आणि कंस सोडले पाहिजे.

मागील संदर्भ किंवा बॅकरेफरेन्स

आपल्याकडे शब्दलेखन तपासक स्थापित असल्यास आपल्याकडे कदाचित शब्दांची यादी असेल /usr/share/dict/words. तसे नसल्यास, आपण यासह कमानीमध्ये स्थापित करू शकता:

sudo pacman -S words

किंवा यासह डेबियनमध्ये:

sudo aptitude install dictionaries-common

आपण इच्छित असल्यास आपण फायलीमध्ये कोणते शब्द आहेत हे पहा. हा आपला डिस्ट्रो ज्या भाषेत आहे त्या भाषेसाठी शब्द फाईलचा दुवा आहे. आपल्याकडे एकाच वेळी बर्‍याच वर्ड फायली स्थापित केल्या जाऊ शकतात.

आपण ती फाईल वापरणार आहोत. हे सिद्ध झाले की आम्हाला तेथे असलेल्या सात-अक्षराच्या पॅलिंड्रोम्सबद्दल जाणून घेण्यास खूप उत्सुकता आहे. ज्यांना हे माहित नाही त्यांच्यासाठी: पालिंड्रोम हा एक कॅपिसिआ शब्द आहे, म्हणजे तो डावीकडून उजवीकडे तसेच उजवीकडून डावीकडे वाचला जाऊ शकतो. चला पुढील आज्ञा वापरून पाहू:

grep '^\(.\)\(.\)\(.\).\3\2\1$' /usr/share/dict/words

हे जरा विचित्र दिसत आहे ना? आम्ही प्रयत्न केल्यास, परिणाम आपल्या डिस्ट्रोच्या भाषेवर आणि आपल्या सूचीतील शब्दांवर अवलंबून असेल, परंतु माझ्या बाबतीत, स्पॅनिश भाषेसह, निकाल हा आहेः

aniline aniline रोलिंग

हे नियमित अभिव्यक्ती कशी कार्य करते ते पाहूया.

"^" आणि "$" याखेरीज, हे आपल्याला काय माहित आहे हे आधीपासून, डावीकडे आपण पहात असलेली पहिली गोष्ट म्हणजे कंसात बंदिस्त बिंदूंचे तीन गट. प्रत्येक कंसातील समोरच्या पट्ट्यांमुळे गोंधळ होऊ नका. ते कंसातून सुटू शकतील कारण आम्ही मूलभूत नियमित अभिव्यक्ती वापरत आहोत, परंतु त्यांना अन्य काही अर्थ नाही. महत्त्वाची गोष्ट म्हणजे आम्ही ठिपक्यांसह कोणतीही तीन वर्ण विचारत आहोत, परंतु त्या प्रत्येक बिंदू कंसात बंद आहेत. हे त्या बिंदूंशी जुळणारे वर्ण जतन करण्यासाठी आहे जेणेकरून नियमित अभिव्यक्तीमधून त्यांचा पुन्हा संदर्भ येऊ शकेल. हे कंसांचा आणखी एक वापर आहे जो बदली करण्यासाठी नंतर वापरात येईल.

येथून खाली तीन नंबर समोर स्लॅश घेऊन येतात. या प्रकरणात, बार महत्वाचा आहे. हे वापरण्यासाठी वापरली जाते की खाली असलेली संख्या बॅकरेफरेन्स आहे आणि मागील पॅरेंटीसपैकी एकाचा संदर्भ घेत आहे. उदाहरणार्थ: \ 1 म्हणजे प्रथम कंस, दुसर्‍यास the 2 आणि इतर.

म्हणजेच आपण ठेवलेल्या नियमित अभिव्यक्तीसह, आपण ज्या शब्दांचा शोध घेत आहोत ते सर्व चार अक्षरापासून सुरू होणारे शब्द आहेत आणि नंतर एक अक्षर आहे जो तिस third्यासारखा आहे, दुसरा जो दुसरा आणि दुसरा आहे पहिल्या सारखेच आहे. शब्द सूचीतील सात-अक्षरे असलेल्या पॅलिंड्रोमचा परिणाम आहे. जसे आम्हाला हवे होते.

आम्ही विस्तारित नियमित अभिव्यक्ती वापरत असल्यास, आम्हाला कंसातून सुटण्याची गरज नाही, परंतु विस्तारित नियमित अभिव्यक्तीसह बॅकरेफरेन्स सर्व प्रोग्राम्समध्ये कार्य करत नाहीत कारण ते प्रमाणित नाहीत. तथापि, ग्रीपसह ते कार्य करतात, जेणेकरून ते करण्याचा दुसरा मार्ग असू शकतो. आपण इच्छित असल्यास आपण प्रयत्न करू शकता.

रिप्लेसमेंट एक्सप्रेशन्स: सेड कमांड

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

sed [-r] 's/REGEX/REPL/g' FICHERO

किंवा देखीलः

COMANDO | sed [-r] 's/REGEX/REPL/g'

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

चला एक सोपा उदाहरण देऊन प्रारंभ करूया. आपल्याकडे / etc निर्देशिकेत विविध कॉन्फिगरेशन फाइल्स असतात ज्या सहसा "#" ने प्रारंभ होणार्‍या टिप्पण्या असतात. समजा या टिप्पण्यांशिवाय आम्हाला यापैकी एक फाईल बघायची आहे. उदाहरणार्थ, मी हे fstab सह करणार आहे. आपण इच्छित असलेल्यासह प्रयत्न करू शकता.

sed 's/#.*//g' /etc/fstab

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

या आदेशात शोध अभिव्यक्ती is#.*", ही एक" # "आहे त्यानंतरच्या वर्णांनुसार, म्हणजेच टिप्पण्या. आणि बदलण्याची अभिव्यक्ती, जर आपण सलग दोन पट्ट्याकडे पहात असाल तर आपल्याला दिसेल की तेथे काहीही नाही, म्हणून ते जे करत आहेत त्या टिप्पण्यांना काहीही न बदलता म्हणजे ते हटवत आहे. सोपे अशक्य.

आता आम्ही उलट काम करणार आहोत. समजा आपल्याला हवे ते म्हणजे फाईलच्या सर्व ओळींवर कमेंट करणे. चला असा प्रयत्न करू:

sed 's/^/# /g' /etc/fstab

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

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

sed 's/\([A-Z]\)/(\1)/g' frases

आमच्याकडे जे आहे ते प्रतिस्थापन अभिव्यक्तीचा एक संदर्भ आहे जो शोध अभिव्यक्तीमधील कंसांना संदर्भित करते. बदली अभिव्यक्तीमधील कंस सामान्य कंस आहेत. बदली अभिव्यक्तीमध्ये त्यांचा कोणताही विशेष अर्थ नाही, ते जसे आहेत तसे ठेवले आहेत. याचा परिणाम असा आहे की सर्व मुख्य अक्षरे तीच अक्षरे बदलली जातात, ती काही असली तरीही त्याच्या सभोवतालच्या कंसांसह.

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

sed 's/.*/"&"/g' frases

या कमांडचे कार्य मागील आधीप्रमाणेच आहे, फक्त आता आपण बदलू ही संपूर्ण ओळ त्याच्या आसपासच्या अवतरणांसह समान रेषाची आहे. आम्ही "&" वापरत असल्यामुळे, कोष्ठक ठेवणे आवश्यक नाही.

नियमित अभिव्यक्तींसह काही उपयुक्त आज्ञा

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

  • मॅन पृष्ठाचे विभाग दर्शवा:

man bash | grep '^[A-Z][A-Z ]*$'

अर्थात, आपण आपल्याला पाहिजे असलेल्या बॅश आज्ञा बदलू शकता. आणि मग मनुष्याकडून, आपण ज्या विभागात आपल्याला स्वारस्य आहे अशा विभागात जाऊ शकता, अर्थातच, नियमित अभिव्यक्ती. आपण शोधणे आणि लिहायला प्रारंभ करण्यासाठी «/» दाबा «^ALIASES$AL ALIASES विभागात जा, उदाहरणार्थ. मला असे वाटते की काही वर्षांपूर्वी मी नियमित अभिव्यक्ती करणे सुरू करण्याचा हा पहिला वापर आहे. मॅन्युअलची काही पृष्ठे हलविणे अश्या युक्तीशिवाय जवळजवळ अशक्य आहे.

  • मशीनसह सर्व वापरकर्त्यांची नावे खास व्यक्तींसह दर्शवा:

sed 's/\([^:]*\).*/\1/' /etc/passwd

  • वापरकर्त्याची नावे दर्शवा, परंतु केवळ शेल असलेले:

grep -vE '(/false|/nologin)$' /etc/passwd | sed 's/\([^:]*\).*/\1/g'

हे खरोखर एका नियमित अभिव्यक्तीद्वारे केले जाऊ शकते, परंतु तसे करण्याचा मार्ग या लेखात मी सांगितलेल्या गोष्टींपेक्षा जास्त आहे, म्हणून दोन आज्ञा एकत्र करून मी ते पूर्ण केले.

  • अंक फाईलमधील सर्व क्रमांकाच्या शेवटच्या तीन अंकांपूर्वी स्वल्पविराम घाला:

sed 's/\(^\|[^0-9.]\)\([0-9]\+\)\([0-9]\{3\}\)/\1\2,\3/g' numbers

हे फक्त 6 अंकांपर्यंतच्या संख्येसह कार्य करते, परंतु तीन अंकांच्या इतर गटांमध्ये विभाजक ठेवण्यासाठी एकापेक्षा जास्त वेळा म्हटले जाऊ शकते.

  •  फाईलमधून सर्व ईमेल पत्ते काढा:

grep -E '\<[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\>' FICHERO

  • फाईलमध्ये दिसणार्‍या सर्व तारखांचा दिवस, महिना आणि वर्ष वेगळे करा:

sed -r 's/([0-9]{2})[/-]([0-9]{2})[/-]([0-9]{4})/Día: \1, Mes: \2, Año: \3/g' FICHERO

  • आमचा स्थानिक आयपी शोधा:

/sbin/ifconfig | grep 'inet .*broadcast' | sed -r 's/[^0-9]*(([0-9]+\.){3}[0-9]+).*/\1/g'

हे एकाच सेड कमांडद्वारे देखील करता येते, परंतु मी त्यास ग्रेप आणि साधेपणासाठी वेगळे केले.

काही उपयुक्त पत्ते

येथे काही पत्ते आहेत जे नियमित अभिव्यक्तीशी संबंधित असू शकतात:

  • नियमित अभिव्यक्ती लायब्ररी: ही एक नियमित अभिव्यक्ती लायब्ररी आहे ज्यात आपण आपल्या आवडीच्या विषयाशी संबंधित नियमित अभिव्यक्ती शोधू शकता. वेब पत्ते, आयडी किंवा काहीही शोधण्यासाठी.
  • रेजीएक्सआर: एक ऑनलाइन नियमित अभिव्यक्ति तपासक. हे आपल्याला मजकूर प्रविष्ट करण्याची आणि त्यावर नियमित अभिव्यक्ती लागू करण्यास अनुमती देते शोध किंवा पुनर्स्थित. हे नियमित अभिव्यक्तीबद्दल माहिती देते आणि आपल्याकडे त्याचे वर्तन बदलण्याचे काही पर्याय आहेत.
  • नियमित अभिव्यक्ति परीक्षक: फायरफॉक्सचा हा एक अ‍ॅडॉन आहे जो आपल्याला ब्राउझरमधून नियमित अभिव्यक्ती तपासण्याची परवानगी देतो.

निष्कर्ष

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

अहो! … अहो! … वेक अप! … आपण सर्व झोपणे काय करीत आहात? 🙂

Fuentes

मी येथून घेतलेल्या या लेखातील नियमित अभिव्यक्तींसाठी काही कल्पना आणि उदाहरणे:


आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.

  1.   चैतन्यशील म्हणाले

    मास्टरली !!!

    1.    हेक्सबॉर्ग म्हणाले

      हे इतके वाईट नाही, परंतु खूप आभारी आहे. लोकांना ते आवडेल अशी आशा आहे. 🙂

      1.    ऑस्कर म्हणाले

        मला हे आवडले!

        1.    हेक्सबॉर्ग म्हणाले

          मग मी काहीतरी योग्य केले असावे. मोठ्याने हसणे!! 🙂

          आपल्या टिप्पणीबद्दल मनापासून धन्यवाद

          1.    ब्लेअर पास्कल म्हणाले

            माणूस माणूस लिहा, ठेवा.

          2.    हेक्सबॉर्ग म्हणाले

            @ ब्लेअर पास्कल: आपल्यासारख्या टिप्पण्या त्यास प्रोत्साहित करतात. You खूप खूप धन्यवाद !!

      2.    सिटक्स म्हणाले

        मलाही ते आवडले ... धन्यवाद 🙂

        1.    हेक्सबॉर्ग म्हणाले

          टिप्पणी दिल्याबद्दल धन्यवाद. मी आणखी काही लिहावे अशी आशा आहे. 🙂

  2.   मेरियन म्हणाले

    आपल्या पोस्ट विलक्षण आहेत, आपण बरेच काही शिकता त्याऐवजी आपण एक मोहक आणि कार्यक्षम मार्गाने कार्य करण्यास शिकता.

    आपण आपल्या सर्व शेल स्क्रिप्ट पोस्ट एकत्रित करण्याचा विचार केला आहे? पीडीएफमध्ये क्रमवारी लावल्यास एक उत्कृष्ट मॅन्युअल बनते.

    चीअर्स आणि खूप खूप आभार!

    1.    हेक्सबॉर्ग म्हणाले

      खूप खूप धन्यवाद !! ही वाईट कल्पना नाही. याक्षणी फक्त दोनच आहेत, परंतु मी त्याबद्दल नंतर विचार करेन. 🙂

  3.   किओव म्हणाले

    खूप चांगला लेख, 5+.

    1.    हेक्सबॉर्ग म्हणाले

      धन्यवाद. तूला हे आवडल्याने मी आनंदी आहे. 🙂

  4.   सेबास्टियन म्हणाले

    उत्कृष्ट! मला पुढील अभिव्यक्ती बदलण्याची आवश्यकता आहे आणि हे कसे करावे हे मला माहित नाही:
    192.168.0.138/ सर्व्हर द्वारा 192.168.0.111/data
    समस्या "/" चिन्हामध्ये आहे.
    मी ही कमांड वापरत आहे.
    शोधणे. -नाव "* .txt" -exec sed -i s / TEXT1 / TEXT2 / g '\} \;
    या प्रकारचे कार्य अनिश्चितपणे पार पाडण्यासाठी काय वापरले जाते, परंतु मी हे करू शकत नाही ...
    मी हे कसे करावे हे कोणाला माहिती आहे काय?
    मिठी!
    सेबा

    1.    हेक्सबॉर्ग म्हणाले

      आपल्याला काय करायचे आहे ते याप्रमाणे चरित्रातून बाहेर पडायचे आहे:

      शोधणे. -नाव "* .txt" -exec sed -i 's / \ / सर्व्हर / \ / डेटा / जी' \} \;

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

      शोधणे. -नाव "* .txt" -exec sed -i चे | / सर्व्हर | / डेटा | g '{} \;

      आणि जर आपण या टिप्पणीमधील आज्ञा कॉपी आणि पेस्ट करणार असाल तर अवतरण चिन्हांबद्दल सावधगिरी बाळगा, ती वर्डप्रेस त्यास टायपोग्राफिकसाठी बदलते. 🙂

      ग्रीटिंग्ज

  5.   सेबास्टियन म्हणाले

    उत्कृष्ट !!!!
    मी बराच काळ हा उपाय शोधत आहे.
    मी वापरलेली संपूर्ण कमांड येथे सोडत आहे

    शोधणे. -नाव "* .txt" -exec sed -i's | 192 \ .168 \ .0 \ .238 \ / सर्व्हर | 192 \ .168 \ .0 \ .111 \ / डेटा | g '{} \;

    या आदेशाचा फायदा असा आहे की तो सर्व .txt फायली (किंवा आपल्याला पाहिजे असलेला विस्तार) रिकर्सिव बदलतो ... आपल्याला खूप सावधगिरी बाळगावी लागेल!
    पण हे खूप उपयुक्त आहे !!!

    बरं, प्रत्येक गोष्टीबद्दल धन्यवाद आणि संपूर्ण ग्रुपचे एक हजार अभिनंदन.
    मी नेहमी त्या मेलमधून वाचतो!
    मिठ्या
    सेबा