Find for specific pattern in a line in a file and replace it












0















I have written a shell script that will generate three different shuffled vales



$ echo $A$B$C
zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA729314856

$ echo $C
729314856

$ echo $A$B
zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA


One is Alpha numeric, one is numbers and one is alphabets.



I also have a package.sql file which has below patterns.



grep TRANSLATE package.sql
RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
RETURN TRANSLATE(p2_value,'0123456789', '0875642139');
RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');
RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


So, I need to replace the patterns in the SQL file with the output I get from Shell script.



ALPHANUMERIC should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139 This part wont be STATIC every time in the below SQL file.



RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


And so ALPHABETS should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg from the below pattern in the SQL file.



RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');


And NUMBERS should be replaced in the second part of the below two patterns in the SQL FILE.



RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
RETURN TRANSLATE(p2_value,'0123456789', '0875642139');


Any idea how can this be achieved.










share|improve this question



























    0















    I have written a shell script that will generate three different shuffled vales



    $ echo $A$B$C
    zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA729314856

    $ echo $C
    729314856

    $ echo $A$B
    zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA


    One is Alpha numeric, one is numbers and one is alphabets.



    I also have a package.sql file which has below patterns.



    grep TRANSLATE package.sql
    RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
    RETURN TRANSLATE(p2_value,'0123456789', '0875642139');
    RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');
    RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


    So, I need to replace the patterns in the SQL file with the output I get from Shell script.



    ALPHANUMERIC should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139 This part wont be STATIC every time in the below SQL file.



    RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


    And so ALPHABETS should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg from the below pattern in the SQL file.



    RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');


    And NUMBERS should be replaced in the second part of the below two patterns in the SQL FILE.



    RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
    RETURN TRANSLATE(p2_value,'0123456789', '0875642139');


    Any idea how can this be achieved.










    share|improve this question

























      0












      0








      0








      I have written a shell script that will generate three different shuffled vales



      $ echo $A$B$C
      zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA729314856

      $ echo $C
      729314856

      $ echo $A$B
      zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA


      One is Alpha numeric, one is numbers and one is alphabets.



      I also have a package.sql file which has below patterns.



      grep TRANSLATE package.sql
      RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
      RETURN TRANSLATE(p2_value,'0123456789', '0875642139');
      RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');
      RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


      So, I need to replace the patterns in the SQL file with the output I get from Shell script.



      ALPHANUMERIC should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139 This part wont be STATIC every time in the below SQL file.



      RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


      And so ALPHABETS should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg from the below pattern in the SQL file.



      RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');


      And NUMBERS should be replaced in the second part of the below two patterns in the SQL FILE.



      RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
      RETURN TRANSLATE(p2_value,'0123456789', '0875642139');


      Any idea how can this be achieved.










      share|improve this question














      I have written a shell script that will generate three different shuffled vales



      $ echo $A$B$C
      zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA729314856

      $ echo $C
      729314856

      $ echo $A$B
      zvjmaqwxgchylentifdoprkubsUFTCQEMZKVOLBWYJRPSDHIGXNA


      One is Alpha numeric, one is numbers and one is alphabets.



      I also have a package.sql file which has below patterns.



      grep TRANSLATE package.sql
      RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
      RETURN TRANSLATE(p2_value,'0123456789', '0875642139');
      RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');
      RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


      So, I need to replace the patterns in the SQL file with the output I get from Shell script.



      ALPHANUMERIC should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139 This part wont be STATIC every time in the below SQL file.



      RETURN TRANSLATE(p4_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg0875642139');


      And so ALPHABETS should replace the second part ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg from the below pattern in the SQL file.



      RETURN TRANSLATE(p3_value,'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz','ZYXWVUFEDCBATSRQPONMLKJIHGzyxwvufedcbatsrqponmlkjihg');


      And NUMBERS should be replaced in the second part of the below two patterns in the SQL FILE.



      RETURN TRANSLATE(p1_value,'0123456789', '0875642139');
      RETURN TRANSLATE(p2_value,'0123456789', '0875642139');


      Any idea how can this be achieved.







      bash shell-script awk sed grep






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 10 mins ago









      sabarish jacksonsabarish jackson

      139212




      139212






















          1 Answer
          1






          active

          oldest

          votes


















          0














          Yep. You want sed e.g. sed -e 's/d+/0987654321/'.



          ^ - beginning of line.
          $ - end of line.



          -E gives you extended regex features





          share








          New contributor




          mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.




















            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "106"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f502453%2ffind-for-specific-pattern-in-a-line-in-a-file-and-replace-it%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Yep. You want sed e.g. sed -e 's/d+/0987654321/'.



            ^ - beginning of line.
            $ - end of line.



            -E gives you extended regex features





            share








            New contributor




            mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.

























              0














              Yep. You want sed e.g. sed -e 's/d+/0987654321/'.



              ^ - beginning of line.
              $ - end of line.



              -E gives you extended regex features





              share








              New contributor




              mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.























                0












                0








                0







                Yep. You want sed e.g. sed -e 's/d+/0987654321/'.



                ^ - beginning of line.
                $ - end of line.



                -E gives you extended regex features





                share








                New contributor




                mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.










                Yep. You want sed e.g. sed -e 's/d+/0987654321/'.



                ^ - beginning of line.
                $ - end of line.



                -E gives you extended regex features






                share








                New contributor




                mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.








                share


                share






                New contributor




                mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered 7 mins ago









                mcintmcint

                1




                1




                New contributor




                mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                mcint is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f502453%2ffind-for-specific-pattern-in-a-line-in-a-file-and-replace-it%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Accessing regular linux commands in Huawei's Dopra Linux

                    Can't connect RFCOMM socket: Host is down

                    Kernel panic - not syncing: Fatal Exception in Interrupt