replacing string in multiple files

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP








up vote
1
down vote

favorite












I am piggybacking of an existing question - I'm not sure how to add this to that question. The examples I see replace a single string - I need to replace multiple strings.



I am trying to change the same string that exists in multiple files in a directory using 'sed'. The string has multiple words. The template I using is:



sed -i 's/oldstring/newstring/g' test.txt


I want to change in a number of files in the same directory - i.e. change the string:



&VARIABLE1 = 10000000


to



&VARIABLE = 1


When I use the following



sed -i 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g' *.txt


It does not do the substitution properly.



What am I doing wrong?







share|improve this question






















  • It was the ampersand that was giving me grief. When I removed it, it worked perfectly. Thank you!!!!
    – postgres_user_99
    May 4 at 15:18














up vote
1
down vote

favorite












I am piggybacking of an existing question - I'm not sure how to add this to that question. The examples I see replace a single string - I need to replace multiple strings.



I am trying to change the same string that exists in multiple files in a directory using 'sed'. The string has multiple words. The template I using is:



sed -i 's/oldstring/newstring/g' test.txt


I want to change in a number of files in the same directory - i.e. change the string:



&VARIABLE1 = 10000000


to



&VARIABLE = 1


When I use the following



sed -i 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g' *.txt


It does not do the substitution properly.



What am I doing wrong?







share|improve this question






















  • It was the ampersand that was giving me grief. When I removed it, it worked perfectly. Thank you!!!!
    – postgres_user_99
    May 4 at 15:18












up vote
1
down vote

favorite









up vote
1
down vote

favorite











I am piggybacking of an existing question - I'm not sure how to add this to that question. The examples I see replace a single string - I need to replace multiple strings.



I am trying to change the same string that exists in multiple files in a directory using 'sed'. The string has multiple words. The template I using is:



sed -i 's/oldstring/newstring/g' test.txt


I want to change in a number of files in the same directory - i.e. change the string:



&VARIABLE1 = 10000000


to



&VARIABLE = 1


When I use the following



sed -i 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g' *.txt


It does not do the substitution properly.



What am I doing wrong?







share|improve this question














I am piggybacking of an existing question - I'm not sure how to add this to that question. The examples I see replace a single string - I need to replace multiple strings.



I am trying to change the same string that exists in multiple files in a directory using 'sed'. The string has multiple words. The template I using is:



sed -i 's/oldstring/newstring/g' test.txt


I want to change in a number of files in the same directory - i.e. change the string:



&VARIABLE1 = 10000000


to



&VARIABLE = 1


When I use the following



sed -i 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g' *.txt


It does not do the substitution properly.



What am I doing wrong?









share|improve this question













share|improve this question




share|improve this question








edited May 4 at 13:23









Sebastian Stark

4,663938




4,663938










asked May 4 at 13:17









postgres_user_99

61




61











  • It was the ampersand that was giving me grief. When I removed it, it worked perfectly. Thank you!!!!
    – postgres_user_99
    May 4 at 15:18
















  • It was the ampersand that was giving me grief. When I removed it, it worked perfectly. Thank you!!!!
    – postgres_user_99
    May 4 at 15:18















It was the ampersand that was giving me grief. When I removed it, it worked perfectly. Thank you!!!!
– postgres_user_99
May 4 at 15:18




It was the ampersand that was giving me grief. When I removed it, it worked perfectly. Thank you!!!!
– postgres_user_99
May 4 at 15:18










1 Answer
1






active

oldest

votes

















up vote
2
down vote













The & character has a special meaning on the replacement side of a sed s command:




 replacement may contain the special character & to refer to that
portion of the pattern space which matched, and the special
escapes 1 through 9 to refer to the corresponding matching
sub-expressions in the regexp.



To make it literal, you need to escape it, &



Ex.



$ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
&VARIABLE1 = 10000000VARIABLE = 1


but



$ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
&VARIABLE = 1





share|improve this answer






















    Your Answer







    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "89"
    ;
    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',
    convertImagesToLinks: true,
    noModals: false,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );








     

    draft saved


    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1031972%2freplacing-string-in-multiple-files%23new-answer', 'question_page');

    );

    Post as a guest






























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    2
    down vote













    The & character has a special meaning on the replacement side of a sed s command:




     replacement may contain the special character & to refer to that
    portion of the pattern space which matched, and the special
    escapes 1 through 9 to refer to the corresponding matching
    sub-expressions in the regexp.



    To make it literal, you need to escape it, &



    Ex.



    $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
    &VARIABLE1 = 10000000VARIABLE = 1


    but



    $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
    &VARIABLE = 1





    share|improve this answer


























      up vote
      2
      down vote













      The & character has a special meaning on the replacement side of a sed s command:




       replacement may contain the special character & to refer to that
      portion of the pattern space which matched, and the special
      escapes 1 through 9 to refer to the corresponding matching
      sub-expressions in the regexp.



      To make it literal, you need to escape it, &



      Ex.



      $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
      &VARIABLE1 = 10000000VARIABLE = 1


      but



      $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
      &VARIABLE = 1





      share|improve this answer
























        up vote
        2
        down vote










        up vote
        2
        down vote









        The & character has a special meaning on the replacement side of a sed s command:




         replacement may contain the special character & to refer to that
        portion of the pattern space which matched, and the special
        escapes 1 through 9 to refer to the corresponding matching
        sub-expressions in the regexp.



        To make it literal, you need to escape it, &



        Ex.



        $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
        &VARIABLE1 = 10000000VARIABLE = 1


        but



        $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
        &VARIABLE = 1





        share|improve this answer














        The & character has a special meaning on the replacement side of a sed s command:




         replacement may contain the special character & to refer to that
        portion of the pattern space which matched, and the special
        escapes 1 through 9 to refer to the corresponding matching
        sub-expressions in the regexp.



        To make it literal, you need to escape it, &



        Ex.



        $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
        &VARIABLE1 = 10000000VARIABLE = 1


        but



        $ echo '&VARIABLE1 = 10000000' | sed 's/&VARIABLE1 = 10000000/&VARIABLE = 1/g'
        &VARIABLE = 1






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited May 4 at 13:36

























        answered May 4 at 13:21









        steeldriver

        62.4k1196164




        62.4k1196164






















             

            draft saved


            draft discarded


























             


            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1031972%2freplacing-string-in-multiple-files%23new-answer', 'question_page');

            );

            Post as a guest













































































            Popular posts from this blog

            pylint3 and pip3 broken

            Missing snmpget and snmpwalk

            How to enroll fingerprints to Ubuntu 17.10 with VFS491