sed: insert text after specific character in a specific line












0















Below is my text file:



example.txt
INTERFACESv4=""
INTERFACESv6=""


Below is my code (it inserts an IP address after the 14th character):



ip_add="192.168.1.2"
file_name="$HOMEDocumentsexample.txt"
sed -i "s/^(.{14})/1${ip_add4}/" "$file_name"


Below is the output of my text file:



example.txt
INTERFACESv4="192.168.1.2"
INTERFACESv6="192.168.1.2"


How do I insert the text in just the first line?









share









New contributor




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

























    0















    Below is my text file:



    example.txt
    INTERFACESv4=""
    INTERFACESv6=""


    Below is my code (it inserts an IP address after the 14th character):



    ip_add="192.168.1.2"
    file_name="$HOMEDocumentsexample.txt"
    sed -i "s/^(.{14})/1${ip_add4}/" "$file_name"


    Below is the output of my text file:



    example.txt
    INTERFACESv4="192.168.1.2"
    INTERFACESv6="192.168.1.2"


    How do I insert the text in just the first line?









    share









    New contributor




    I.T. G. 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








      Below is my text file:



      example.txt
      INTERFACESv4=""
      INTERFACESv6=""


      Below is my code (it inserts an IP address after the 14th character):



      ip_add="192.168.1.2"
      file_name="$HOMEDocumentsexample.txt"
      sed -i "s/^(.{14})/1${ip_add4}/" "$file_name"


      Below is the output of my text file:



      example.txt
      INTERFACESv4="192.168.1.2"
      INTERFACESv6="192.168.1.2"


      How do I insert the text in just the first line?









      share









      New contributor




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












      Below is my text file:



      example.txt
      INTERFACESv4=""
      INTERFACESv6=""


      Below is my code (it inserts an IP address after the 14th character):



      ip_add="192.168.1.2"
      file_name="$HOMEDocumentsexample.txt"
      sed -i "s/^(.{14})/1${ip_add4}/" "$file_name"


      Below is the output of my text file:



      example.txt
      INTERFACESv4="192.168.1.2"
      INTERFACESv6="192.168.1.2"


      How do I insert the text in just the first line?







      linux sed





      share









      New contributor




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










      share









      New contributor




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








      share



      share








      edited 5 mins ago









      Jeff Schaller

      42.5k1158135




      42.5k1158135






      New contributor




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









      asked 9 mins ago









      I.T. G.I.T. G.

      1




      1




      New contributor




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





      New contributor





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






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






















          1 Answer
          1






          active

          oldest

          votes


















          0














          The minimal change would be to force the command to execute only on line 1:



          sed -i "1s/^(.{14})/1${ip_add4}/" "$file_name"


          You might consider a stricter search pattern if you only want to change the value for INTERFACESv4, no matter what line that value appears on:



          sed -i "s/INTERFACESv4=.*/INTERFACESv4=${ip_add4}/" "$file_name"




          share























            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
            });


            }
            });






            I.T. G. is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f503470%2fsed-insert-text-after-specific-character-in-a-specific-line%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














            The minimal change would be to force the command to execute only on line 1:



            sed -i "1s/^(.{14})/1${ip_add4}/" "$file_name"


            You might consider a stricter search pattern if you only want to change the value for INTERFACESv4, no matter what line that value appears on:



            sed -i "s/INTERFACESv4=.*/INTERFACESv4=${ip_add4}/" "$file_name"




            share




























              0














              The minimal change would be to force the command to execute only on line 1:



              sed -i "1s/^(.{14})/1${ip_add4}/" "$file_name"


              You might consider a stricter search pattern if you only want to change the value for INTERFACESv4, no matter what line that value appears on:



              sed -i "s/INTERFACESv4=.*/INTERFACESv4=${ip_add4}/" "$file_name"




              share


























                0












                0








                0







                The minimal change would be to force the command to execute only on line 1:



                sed -i "1s/^(.{14})/1${ip_add4}/" "$file_name"


                You might consider a stricter search pattern if you only want to change the value for INTERFACESv4, no matter what line that value appears on:



                sed -i "s/INTERFACESv4=.*/INTERFACESv4=${ip_add4}/" "$file_name"




                share













                The minimal change would be to force the command to execute only on line 1:



                sed -i "1s/^(.{14})/1${ip_add4}/" "$file_name"


                You might consider a stricter search pattern if you only want to change the value for INTERFACESv4, no matter what line that value appears on:



                sed -i "s/INTERFACESv4=.*/INTERFACESv4=${ip_add4}/" "$file_name"





                share











                share


                share










                answered 2 mins ago









                Jeff SchallerJeff Schaller

                42.5k1158135




                42.5k1158135






















                    I.T. G. is a new contributor. Be nice, and check out our Code of Conduct.










                    draft saved

                    draft discarded


















                    I.T. G. is a new contributor. Be nice, and check out our Code of Conduct.













                    I.T. G. is a new contributor. Be nice, and check out our Code of Conduct.












                    I.T. G. is a new contributor. Be nice, and check out our Code of Conduct.
















                    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%2f503470%2fsed-insert-text-after-specific-character-in-a-specific-line%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

                    Entries order in /etc/network/interfaces

                    新発田市

                    Grub takes very long (several minutes) to open Menu (in Multi-Boot-System)