फाईल्समधील मजकूर फक्त एका आदेशासह बदला: पर्ल

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

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

उदाहरणाचे अनुसरण करीत आमच्याकडे फाईल आहे कागदजत्र मध्ये स्थित / मुख्यपृष्ठ / कागदजत्र .txt खालील मजकुरासह:

(...) माझे कुटुंब हे सर्व आपल्यासारखे किंवा आपल्या शेजार्‍यासारखे आहे. खरं तर माझे कुटुंब आम्ही जबाबदार लोक आणि समाजाच्या दृष्टीने, राजकीय आणि सामाजिकदृष्ट्या योग्य होण्याचा प्रयत्न करतो. तथापि, माझ्या घरात एक काळी मेंढी आहे आणि ती माझी भूमिका आहे LOL! मी नेहमीच एक आहे जो त्याला काय वाटते ते सांगण्यास घाबरत नाही (जरी हे समाजाच्या दृष्टीने वरवर पाहता योग्य नाही), जरी वास्तविकतेत माझे कुटुंब याने कंटाळले आहे घाण आजचा समाज.

पुढील आदेशासह आपण बदलेल «माझे कुटुंब"द्वारे"आम्हाला:

perl -pi -e "s[mi familia][nosotros]g" $HOME/Documento.txt

हे सोपे आहे 🙂

तर मजकूर असा असेलः

(...) आम्हाला हे सर्व आपल्यासारखे किंवा आपल्या शेजार्‍यासारखे आहे. खरं तर आम्हाला आम्ही जबाबदार लोक आणि समाजाच्या दृष्टीने, राजकीय आणि सामाजिकदृष्ट्या योग्य होण्याचा प्रयत्न करतो. तथापि, माझ्या घरात एक काळी मेंढी आहे आणि ती माझी भूमिका आहे LOL! मी नेहमीच एक आहे जो त्याला काय वाटते ते सांगण्यास घाबरत नाही (जरी हे समाजाच्या दृष्टीने वरवर पाहता योग्य नाही), जरी वास्तविकतेत माझे कुटुंब याने कंटाळले आहे घाण आजचा समाज.

वाक्यरचनाः

perl -pi -e "s[lo-que-quiero-cambiar][lo-nuevo-a-poner]g" archivo-en-el-cual-reemplazar

ही आज्ञा थोडीशी जटिल वाटू शकते, चला त्यास थोडा खाली करू आणि त्यास थोडे अधिक सोप्या समजावून सांगा 😉

  • पेर्ल : आम्ही काय वापरू, पर्ल
  • -पीआय : पीओ, कसे π (अंदाजे मूल्य 3.14)
  • -e : ई ने कार्यान्वित करण्यासाठी याची कल्पना केली ^ - ^
  • मग कोट मध्ये » आम्ही एक सह उघडू s आणि आम्ही एक सह बंद g: "एसएजी" … प्रारंभ एस आणि गेम ओव्हर जी साठी gine ची कल्पना करा
  • दरम्यान वळा sg आपण दोन कंसात सेट करणे आवश्यक आहे: [] y [], त्या मार्गाने जात: "एस [] [] जी"
  • मी वर म्हटल्याप्रमाणे प्रथम कंसात, नवीन मजकूर जो आपल्याला काढून टाकायचा आहे आणि तो बदलायचा आहे, तर दुस-या कंसात नवीन मजकूर पुढे जाईल, उदाहरणार्थ: "एस [माझे कुटुंब] [आम्ही] जी"

सोपे आहे ना?

आदेशासाठी आवश्यक असलेल्या गोष्टींपेक्षा स्पष्टीकरण अधिक विस्तृत आहे, हे समजणे अगदी सोपे आहे 🙂

पर्ल बरेच काही आहे, मजकूर पुनर्स्थित करण्याच्या पद्धतीपेक्षा ती एक संपूर्ण भाषा 😉

आपण त्याबद्दल अधिक जाणून घेऊ इच्छित असल्यास, पॅकेज स्थापित करा पर्ल-डॉक आणि हे कशामुळे परवानगी देते हे पहा, ते फक्त एक वेगळे विश्व आहे.

तसे close गृह / कागदपत्रे / आणि आपल्यातील सर्व .txt फाइल्स आपण शोधू इच्छित आहात असे गृहीत धरुन आणि प्रत्येकजण "माझे कुटुंब" "आमच्या" सह पुनर्स्थित करतो, हे मिळविण्यासाठी आपण शोध + पर्लमध्ये सामील होऊ शकता:

find $HOME/Documentos/ -name *.txt -exec perl -p -i -e "s[mi familia][nosotros]g" {} \;

किंवा वाइल्डकार्ड वापरुन:

perl -p -i -e "s[mi familia][nosotros]g" $HOME/Documentos/*.txt

या दुसर्या प्रकारातील समस्या अशी आहे की ती सबफोल्डर्स files मधील फायली पुनर्स्थित करणार नाही

असं असलं तरी, मला आशा आहे की आपणास हे स्वारस्यपूर्ण वाटले आहे. माझ्यासाठी ते खरोखर उपयुक्त आहे, मी आधीच टर्मिनलमधून मजकूर पुनर्स्थित करू शकतो ... छान! 😀


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

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

*

*

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

  1.   बूम म्हणाले

    बरं, मला वाटतं की आपल्यातील बर्‍याच जणांना सेड कमांड माहित आहे, जी समान हेतूची कार्य करते, ती ती अधिक चांगली करते आणि वापरण्यास सुलभ आहे ...

    1.    केझेडकेजी ^ गारा म्हणाले

      आपल्या टिप्पणीबद्दल धन्यवाद,
      फक्त दोन तपशील, आपण असे का म्हणता की सेड अधिक चांगले करते? इतक्या 'विचित्र' पात्रांसह वापरणे खरोखर सोपे आहे?

  2.   फेडरिको ए. वाल्ड्स टुजॉगल म्हणाले

    सर्वांना शुभेच्छा!!!. मी कमांड वापरली आहे sed, आणि येथे पर्ल सह वर्णन केलेली पद्धत सोपी आहे. धन्यवाद केझेडकेजी ^ गारा !!!.

    1.    केझेडकेजी ^ गारा म्हणाले

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

      1.    गिसकार्ड म्हणाले

        तिथे एक "जुनी" म्हण आहे: "मला एक समस्या होती, मी नियमित अभिव्यक्ती वापरण्याचे ठरविले ... आता मला दोन समस्या आहेत" 😉

        1.    केझेडकेजी ^ गारा म्हणाले

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

          वर्षांपूर्वी मला ही आज्ञा माहित असते तर, देवा !! माझे जीवन किती सोपे झाले असते 😀

          1.    गिसकार्ड म्हणाले

            साफ! हाताळले ते खूप शक्तिशाली आहेत 🙂 मजकूर हाताळण्यासाठी यापेक्षा चांगले काहीही नाही. परंतु कधीकधी आपण पर्लच्या बाबतीत असे म्हणता तसे एखादे बदल करणे पुरेसे असल्यास आपणास पुढे जाण्याची गरज नाही.
            मी अजगर अजुन वापरला असता :)

    2.    धुंटर म्हणाले

      पण तहान लागताना मला हे अगदी सोपे दिसते आहे ... मी काहीतरी चूक करीत आहे?

      sed -i "हो / काय-मला-बदलायचे / नवीन-ते-ठेवा /" फाइल-इन-मध्ये-बदला

      1.    केझेडकेजी ^ गारा म्हणाले

        हे हेह ... आणि जर मला "http://my.blog.com / कंटेन्ट" "" http://my.blog.com/uploads/files/ "सह पुनर्स्थित करायचे असेल तर - आधीपासूनच आपल्याला रिक्त स्थान आणि इतरांसह ठेवावे लागेल , आणि ते गुंतागुंत होते की नाही?

        1.    धुंटर म्हणाले

          विभाजक म्हणून / वापरणे बंधनकारक नाही. + सह पहा

          sed -i «s + http: //my.blog.com/content/+http: //my.blog.com/uploads/files/+» फाईल

          1.    केझेडकेजी ^ गारा म्हणाले

            ओ_ओ… डब्ल्यूटीएफ!
            आपण आता माझ्यासाठी पर्यायांचे संपूर्ण विश्व उघडले आहे .. ओ_ओ

          2.    गिसकार्ड म्हणाले

            मला या पोस्ट आवडतात जिथे आपण सर्व काही शिकतो 🙂
            मला तेही माहित नव्हते.

  3.   रॉ-बेसिक म्हणाले

    मी थेट vi वापरणे पसंत करतो ..

    इतके सोपे:
    :% s / आम्हाला / माझे कुटुंब / जी

    % -> संपूर्ण दस्तऐवज
    s -> शोध
    g -> सर्व घटना

    ग्रीटिंग्ज ..

    1.    केझेडकेजी ^ गारा म्हणाले

      धन्यवाद!
      मला vi सह हे कसे करावे हे माहित नव्हते

  4.   st0rmt4il म्हणाले

    आवडीमध्ये जोडले!

    धन्यवाद!

  5.   एन 3 स्टॉर्म म्हणाले

    आपल्याकडे थोडी आरपीएल कमांड असल्यास ती बघा

    http://microbuffer.wordpress.com/2011/02/28/rpl-buscar-y-reemplazar-strings-en-linux-unix/

  6.   दुरंग म्हणाले

    ग्रेट एंट्री! जर कोणालाही आवड असेल तर लिनक्स सेड कमांड प्रमाणेचः http://www.sysadmit.com/2015/07/linux-reemplazar-texto-en-archivos-con-sed.html

    1.    संशयास्पद म्हणाले

      आणि जर फाईलमध्ये मला पुनर्स्थित करायचे असेल तर कोट्स असेल तर काय होईल?
      मजकूर काय म्हणतो हे पुनर्स्थित कराः text 1 text मजकूराद्वारे: »2 ″
      आज्ञा कशी असेल?

  7.   पर्सी सालगॅडो म्हणाले

    हॅलो

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

    बदलण्यासाठी मजकूर: लाइव्ह लाइव्ह पेरू
    नवीन मजकूर: Viva mi patria @percysalgado
    दर्शविले: माझे जन्मभुमी कायम राहा

    आपण मदत केल्याबद्दल धन्यवाद

  8.   निनावी म्हणाले

    "\" दुहेरी वापरासह वर्णांपूर्वी आपण स्लॅश वापरणे आवश्यक आहे @, #, जेणेकरून त्यांचे मजकूर म्हणून वर्णन केले जाईल.

  9.   Gaba म्हणाले

    आणि मी विंडोजमध्ये हे कसे करू ????