কেবলমাত্র একটি কমান্ড: ফাইলের অভ্যন্তরে পাঠ্য প্রতিস্থাপন করুন

নির্দিষ্ট সময়ে আমরা কোনও ফাইলের মধ্যে পাঠ্য প্রতিস্থাপন করতে চাই, উদাহরণস্বরূপ, পরিবর্তন করুন Document.txt "আমাদের পরিবার" "আমাদের জন্য" বলে যা কিছু আছে। এটি অর্জনের জন্য আমরা আমাদের পছন্দের পাঠ্য সম্পাদক (কেট, গেডিট, সাবলাইমেক্সট, ইত্যাদি) ব্যবহার করতে পারি তবে বৈকল্পগুলি, একই ফলাফলটি অর্জনের অন্যান্য উপায়গুলি জানা সর্বদা ভাল 🙂

এটা যে সঙ্গে হয় নিয়মিত অভিব্যক্তি আপনি এটি অর্জন করতে পারেন, সেড কমান্ডটি কেবল দুর্দান্ত, এটিতে অফুরন্ত রুপ এবং বিকল্প রয়েছে তবে ... যারা কেবল পাঠ্যটি প্রতিস্থাপন করতে চান কমপক্ষে জটিল উপায়, তাদের জন্য এটি আমি এটিকে আরও সহজ রূপটি এনেছি:

উদাহরণ অনুসরণ করে আমাদের কাছে ফাইল রয়েছে Document.txt মধ্যে অবস্থিত OME হোম / ডকুমেন্ট.টেক্সট নিম্নলিখিত পাঠ্য সহ:

(...) আমার পরিবার এটি আপনার বা আপনার প্রতিবেশীর মতো সবার মতো। আসলে আমার পরিবার আমরা দায়বদ্ধ ব্যক্তি এবং সমাজের দৃষ্টিতে রাজনৈতিক ও সামাজিকভাবে সঠিক হওয়ার চেষ্টা করি। যাইহোক, আমার বাড়িতে একটি কালো মেষ আছে, এবং এটি আমার ভূমিকা এলএল! আমি যাঁর যা মনে হয় তা বলতে ভয় বোধ করেই আমি সবসময়ই রয়েছি (যদিও এটি সমাজের চোখে আপাতভাবে সঠিক না হলেও), যদিও বাস্তবে আমার পরিবার এতে বিরক্ত ময়লা আজকের সমাজ।

নিম্নলিখিত কমান্ডের সাহায্যে আপনি পরিবর্তন করতে পারবেন «আমার পরিবার" দ্বারা "আমাদের':

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

এটি যে সহজ 🙂

সুতরাং পাঠ্যটি হবে:

(...) আমাদের এটি আপনার বা আপনার প্রতিবেশীর মতো সবার মতো। আসলে আমাদের আমরা দায়বদ্ধ ব্যক্তি এবং সমাজের দৃষ্টিতে রাজনৈতিক ও সামাজিকভাবে সঠিক হওয়ার চেষ্টা করি। যাইহোক, আমার বাড়িতে একটি কালো মেষ আছে, এবং এটি আমার ভূমিকা এলএল! আমি যাঁর যা মনে হয় তা বলতে ভয় বোধ করেই আমি সবসময়ই রয়েছি (যদিও এটি সমাজের চোখে আপাতভাবে সঠিক না হলেও), যদিও বাস্তবে আমার পরিবার এতে বিরক্ত ময়লা আজকের সমাজ।

বাক্য গঠনটি হ'ল:

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

কমান্ডটি কিছুটা জটিল বলে মনে হচ্ছে, আসুন এটি কিছুটা ভেঙে আরও কিছুটা সহজভাবে ব্যাখ্যা করুন 😉

  • Perl : আমরা কী ব্যবহার করব, পার্ল
  • -পি : পিও, কেমন π (3.14 এর আনুমানিক মান)
  • -e : E বাস্তবায়নের জন্য imagine ই এর জন্য এটি কল্পনা করে » ^ - ^
  • তারপরে উদ্ধৃতিতে » আমরা একটি দিয়ে খুলুন s এবং আমরা একটি সঙ্গে বন্ধ g: "এসএজি" … স্টার্ট এস এর জন্য এবং জি গেম ওভার Ima এর কল্পনা করুন 😀
  • মধ্যে পালা sg আমাদের অবশ্যই দুটি সেট বন্ধনী স্থাপন করতে হবে: [] y [], সেভাবে হচ্ছে: "এস [] [] জি"
  • আমি উপরে যেমন বলেছি প্রথম বন্ধনীগুলির ভিতরে, আমরা যে পাঠ্যটিকে মুছে ফেলতে এবং একটি নতুনের সাথে প্রতিস্থাপন করতে চাইছি সেগুলি চলে যাবে, যখন বন্ধনীগুলির দ্বিতীয় সেটে নতুন পাঠ্যটি যাবে, উদাহরণ অনুসরণ করে: "এস [আমার পরিবার] [আমরা] জি"

সরল তাই না?

কমান্ডের জন্য যা প্রয়োজন তার চেয়ে ব্যাখ্যাটি আসলে অনেক বেশি বিস্তৃত, এটি বোঝা বেশ সহজ 🙂 🙂

পার্ল অনেক বেশি, পাঠ্য প্রতিস্থাপনের উপায়ের চেয়ে অনেক বেশি, এটি সম্পূর্ণ ভাষা 😉 😉

আপনি যদি এটি সম্পর্কে আরও জানতে চান তবে প্যাকেজটি ইনস্টল করুন পার্ল-ডক এবং এটি কীভাবে অনুমোদন করে তা হুডো দেখুন, এটি কেবল একটি ভিন্ন মহাবিশ্ব।

যাইহোক এবং বন্ধ করার জন্য, ধরে নিলাম আপনি যে সমস্ত .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

এই দ্বিতীয় রূপটির সমস্যাটি হ'ল এটি সাবফোল্ডারগুলিতে থাকা ফাইলগুলিতে প্রতিস্থাপন করবে না 🙂

যাইহোক, আমি আশা করি আপনি এটি আকর্ষণীয় পেয়েছি। আমার জন্য এটি সত্যই কার্যকর হয়েছে, আমি ইতিমধ্যে টার্মিনাল থেকে সরাসরি টেক্সটটি প্রতিস্থাপন করতে পারি ... দুর্দান্ত! 😀


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।

  1.   গম্ভীর গর্জন তিনি বলেন

    ঠিক আছে, আমি মনে করি আমাদের এখানে অনেকগুলি সেড কমান্ড জানে, এটি একই উদ্দেশ্যে কাজ করে, এটি এটি আরও ভাল করে এবং ব্যবহার করা সহজ ...

    1.    কেজেডিজি ^ গারা তিনি বলেন

      আপনার মন্তব্যের জন্য ধন্যবাদ,
      মাত্র দুটি বিশদ, আপনি কেন বলেন যে সেড এটি আরও ভাল করে তোলে? এতগুলি 'অদ্ভুত' অক্ষর ব্যবহার করা কি সত্যিই সহজ?

  2.   ফেডেরিকো এ। ভ্যালডেস টৌজগ তিনি বলেন

    সবাইকে শুভেচ্ছা!!!. আমি কমান্ডটি ব্যবহার করেছি কিন্তু, এবং পার্লের সাথে এখানে বর্ণিত পদ্ধতিটি সহজ। ধন্যবাদ কেজেডিজি ^ গারা !!!।

    1.    কেজেডিজি ^ গারা তিনি বলেন

      মন্তব্যের জন্য ধন্যবাদ 🙂
      ভাল, কমপক্ষে আমার কাছে এটি নিয়মিত প্রকাশের চেয়ে সহজ বলে মনে হচ্ছে ... যে এতগুলি 'অদ্ভুত' চরিত্রের সাথে, বোঝার এবং শেখার জন্য সত্যিকারের জটিল কিছু অ-বুদ্ধিমানের সাথে করা যেতে পারে।

      1.    গিসকার্ড তিনি বলেন

        একটি «পুরানো» প্রবাদটি এখানে আছে: «আমার একটি সমস্যা হয়েছিল, আমি নিয়মিত এক্সপ্রেশন ব্যবহার করার সিদ্ধান্ত নিয়েছিলাম ... এখন আমার দুটি সমস্যা আছে» 😉

        1.    কেজেডিজি ^ গারা তিনি বলেন

          হাহাহাহাহাহাহাহা !!!
          নিয়মিত প্রকাশগুলি একটি নির্দিষ্ট পয়েন্টে আমাদের জীবন বাঁচাতে পারে ... হ্যাঁ, কীভাবে এগুলি ব্যবহার করতে হয় এবং চেষ্টা করে মারা না যায় তা শিখতে দীর্ঘ সময় লাগে।

          আমি যদি এই আদেশটি বহু বছর আগে জানতাম, !!শ্বর !! আমার জীবন কত সহজ হত 😀

          1.    গিসকার্ড তিনি বলেন

            পরিষ্কার! হ্যান্ডলড এগুলি খুব শক্তিশালী text পাঠকে ম্যানিপুলেট করার জন্য এর চেয়ে ভাল আর কিছুই নয়। তবে কখনও কখনও, যেমন আপনি পার্লের সাথে এই ক্ষেত্রে বলেছিলেন, প্রতিস্থাপনের জন্য যথেষ্ট হলে আপনার এতদূর যেতে হবে না।
            আমি যাইহোক যাইহোক পাইথন ব্যবহার করতে হবে :)

    2.    ধুন্তর তিনি বলেন

      তবে তৃষ্ণায় আমি এটিকে আরও সহজ দেখছি ... আমি কি কিছু ভুল করছি?

      সেড -i "হ্যাঁ / কী-আমি-পরিবর্তন করতে চাই / নতুন-টু-পুট /" ফাইল-ইন-যেটি প্রতিস্থাপন করতে হবে

      1.    কেজেডিজি ^ গারা তিনি বলেন

        হি হি ... এবং যদি আমি "http://my.blog.com/content/" কে "http://my.blog.com/uploads/files/" দ্বারা প্রতিস্থাপন করতে চাই ... ইতিমধ্যে সেখানে আপনাকে স্পেস এবং অন্যদের সাথে রাখতে হবে , এবং এটি জটিল হয় বা না?

        1.    ধুন্তর তিনি বলেন

          বিভাজক হিসাবে / ব্যবহার বাধ্যতামূলক নয়। + সহ দেখুন

          সেড-আই «এস + http: //my.blog.com/content/+http: //my.blog.com/uploads/files/+» ফাইল

          1.    কেজেডিজি ^ গারা তিনি বলেন

            ও_ও… ডব্লিউটিএফ!
            আপনি এখন আমার জন্য একটি সম্পূর্ণ মহাবিশ্বের বিকল্প খুলেছেন .. ও_ও

          2.    গিসকার্ড তিনি বলেন

            আমি এই পোস্টগুলিতে ভালবাসি যেখানে আমরা সকলেই কিছু শিখি 🙂
            আমি তাও জানতাম না।

  3.   RAW- বেসিক তিনি বলেন

    আমি সরাসরি vi ব্যবহার করতে পছন্দ করি ..

    মতই সহজ:
    :% s / আমাদের / আমার পরিবার / ছ

    % -> সম্পূর্ণ নথি
    গুলি -> অনুসন্ধান করুন
    g -> সমস্ত ঘটনা

    গ্রিটিংস ..

    1.    কেজেডিজি ^ গারা তিনি বলেন

      ধন্যবাদ!
      আমি vi এর সাথে কীভাবে করব তা জানতাম না

  4.   st0rmt4il তিনি বলেন

    ফেভারিটে যুক্ত!

    ধন্যবাদ!

  5.   n3 ঝড় তিনি বলেন

    আপনার কাছে কিছুটা আরপিএল কমান্ড থাকলে তা একবার দেখুন

    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.   পার্সি সালগাদো তিনি বলেন

    hola

    আমি মাঝখানে একটি স্ট্রিং প্রতিস্থাপন করতে চাইছিলাম যা কেবলমাত্র এর আগে টেক্সটটি পরিবর্তিত হয়েছিল।

    পাঠ্য পরিবর্তন করতে: ভিভা এল পেরে
    নতুন পাঠ্য: ভিভা মাই প্যাট্রিয়া @ পার্সিসালগাদো
    দেখানো হয়েছে: আমার জন্মভূমি দীর্ঘজীবী হও

    আপনার সাহায্যের জন্য ধন্যবাদ

  8.   নামবিহীন তিনি বলেন

    "\" অক্ষরগুলির আগে আপনার অবশ্যই স্ল্যাশ ব্যবহার করতে হবে ডাবল ব্যবহারের সাথে @, #, যাতে তাদের পাঠ্য হিসাবে ব্যাখ্যা করা যায়।

  9.   গাবা তিনি বলেন

    এবং আমি উইন্ডোতে এটি কিভাবে করব ????