shell script to pass values properties file in java












1















I have a properties file that looks like this:



mysql.username=USERNAME
mysql.pass=PASS


I need to change USERNAME and PASS with variable values passed to shell script. I cannot use sed since that will work fine the first time to replace USERNAME and PASS with "values" but once they are replaced, sed will not find the variable names in the file the second time the script runs and thus an issue.



How can this be handled?










share|improve this question







New contributor




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

























    1















    I have a properties file that looks like this:



    mysql.username=USERNAME
    mysql.pass=PASS


    I need to change USERNAME and PASS with variable values passed to shell script. I cannot use sed since that will work fine the first time to replace USERNAME and PASS with "values" but once they are replaced, sed will not find the variable names in the file the second time the script runs and thus an issue.



    How can this be handled?










    share|improve this question







    New contributor




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























      1












      1








      1








      I have a properties file that looks like this:



      mysql.username=USERNAME
      mysql.pass=PASS


      I need to change USERNAME and PASS with variable values passed to shell script. I cannot use sed since that will work fine the first time to replace USERNAME and PASS with "values" but once they are replaced, sed will not find the variable names in the file the second time the script runs and thus an issue.



      How can this be handled?










      share|improve this question







      New contributor




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












      I have a properties file that looks like this:



      mysql.username=USERNAME
      mysql.pass=PASS


      I need to change USERNAME and PASS with variable values passed to shell script. I cannot use sed since that will work fine the first time to replace USERNAME and PASS with "values" but once they are replaced, sed will not find the variable names in the file the second time the script runs and thus an issue.



      How can this be handled?







      shell-script bash






      share|improve this question







      New contributor




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











      share|improve this question







      New contributor




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









      share|improve this question




      share|improve this question






      New contributor




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









      asked 2 days ago









      Simran kaurSimran kaur

      1063




      1063




      New contributor




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





      New contributor





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






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






















          3 Answers
          3






          active

          oldest

          votes


















          1














          You can obtain old parameters from the properties file before using sed, e.g.



          # get old parameters
          $ export oldUsername=$(grep mysql.username $FILE | cut -d'=' -f2)
          $ export oldPass=$(grep mysql.pass $FILE | cut -d'=' -f2)

          # set new parameters
          $ export newUsername=NEW_USERNAME
          $ export newPass=NEW_PASS

          # change parameters
          $ sed -i "s/$oldUsername/$newUsername/g" $FILE
          $ sed -i "s/$oldPass/$newPass/g" $FILE





          share|improve this answer








          New contributor




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




























            1














            You can use below.



            [user@xyz ~]$ hh='mysql.username=USERNAME';echo $hh | awk -F"=" '{OFS=FS}{ $2="Mango"; print }'
            mysql.username=Mango





            share|improve this answer








            New contributor




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





















            • It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

              – Levi
              17 hours ago



















            1














            You should regenerate this file from a template using your configuration management system of choice.



            You could also write a shell script that uses a heredoc to do the same thing. But since we're in DevOps-land you really should be using your configuration management system for these things.






            share|improve this answer























              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "674"
              };
              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
              });


              }
              });






              Simran kaur 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%2fdevops.stackexchange.com%2fquestions%2f6615%2fshell-script-to-pass-values-properties-file-in-java%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              You can obtain old parameters from the properties file before using sed, e.g.



              # get old parameters
              $ export oldUsername=$(grep mysql.username $FILE | cut -d'=' -f2)
              $ export oldPass=$(grep mysql.pass $FILE | cut -d'=' -f2)

              # set new parameters
              $ export newUsername=NEW_USERNAME
              $ export newPass=NEW_PASS

              # change parameters
              $ sed -i "s/$oldUsername/$newUsername/g" $FILE
              $ sed -i "s/$oldPass/$newPass/g" $FILE





              share|improve this answer








              New contributor




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

























                1














                You can obtain old parameters from the properties file before using sed, e.g.



                # get old parameters
                $ export oldUsername=$(grep mysql.username $FILE | cut -d'=' -f2)
                $ export oldPass=$(grep mysql.pass $FILE | cut -d'=' -f2)

                # set new parameters
                $ export newUsername=NEW_USERNAME
                $ export newPass=NEW_PASS

                # change parameters
                $ sed -i "s/$oldUsername/$newUsername/g" $FILE
                $ sed -i "s/$oldPass/$newPass/g" $FILE





                share|improve this answer








                New contributor




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























                  1












                  1








                  1







                  You can obtain old parameters from the properties file before using sed, e.g.



                  # get old parameters
                  $ export oldUsername=$(grep mysql.username $FILE | cut -d'=' -f2)
                  $ export oldPass=$(grep mysql.pass $FILE | cut -d'=' -f2)

                  # set new parameters
                  $ export newUsername=NEW_USERNAME
                  $ export newPass=NEW_PASS

                  # change parameters
                  $ sed -i "s/$oldUsername/$newUsername/g" $FILE
                  $ sed -i "s/$oldPass/$newPass/g" $FILE





                  share|improve this answer








                  New contributor




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










                  You can obtain old parameters from the properties file before using sed, e.g.



                  # get old parameters
                  $ export oldUsername=$(grep mysql.username $FILE | cut -d'=' -f2)
                  $ export oldPass=$(grep mysql.pass $FILE | cut -d'=' -f2)

                  # set new parameters
                  $ export newUsername=NEW_USERNAME
                  $ export newPass=NEW_PASS

                  # change parameters
                  $ sed -i "s/$oldUsername/$newUsername/g" $FILE
                  $ sed -i "s/$oldPass/$newPass/g" $FILE






                  share|improve this answer








                  New contributor




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









                  share|improve this answer



                  share|improve this answer






                  New contributor




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









                  answered 2 days ago









                  Pavel StroitelevPavel Stroitelev

                  112




                  112




                  New contributor




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





                  New contributor





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






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























                      1














                      You can use below.



                      [user@xyz ~]$ hh='mysql.username=USERNAME';echo $hh | awk -F"=" '{OFS=FS}{ $2="Mango"; print }'
                      mysql.username=Mango





                      share|improve this answer








                      New contributor




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





















                      • It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

                        – Levi
                        17 hours ago
















                      1














                      You can use below.



                      [user@xyz ~]$ hh='mysql.username=USERNAME';echo $hh | awk -F"=" '{OFS=FS}{ $2="Mango"; print }'
                      mysql.username=Mango





                      share|improve this answer








                      New contributor




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





















                      • It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

                        – Levi
                        17 hours ago














                      1












                      1








                      1







                      You can use below.



                      [user@xyz ~]$ hh='mysql.username=USERNAME';echo $hh | awk -F"=" '{OFS=FS}{ $2="Mango"; print }'
                      mysql.username=Mango





                      share|improve this answer








                      New contributor




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










                      You can use below.



                      [user@xyz ~]$ hh='mysql.username=USERNAME';echo $hh | awk -F"=" '{OFS=FS}{ $2="Mango"; print }'
                      mysql.username=Mango






                      share|improve this answer








                      New contributor




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









                      share|improve this answer



                      share|improve this answer






                      New contributor




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









                      answered 2 days ago









                      againagain

                      1191




                      1191




                      New contributor




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





                      New contributor





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






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













                      • It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

                        – Levi
                        17 hours ago



















                      • It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

                        – Levi
                        17 hours ago

















                      It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

                      – Levi
                      17 hours ago





                      It would be nice if you could break down each section of the command. This would help people less experienced in bash and possibly help them fix similar problems in the future based on what they learn here.

                      – Levi
                      17 hours ago











                      1














                      You should regenerate this file from a template using your configuration management system of choice.



                      You could also write a shell script that uses a heredoc to do the same thing. But since we're in DevOps-land you really should be using your configuration management system for these things.






                      share|improve this answer




























                        1














                        You should regenerate this file from a template using your configuration management system of choice.



                        You could also write a shell script that uses a heredoc to do the same thing. But since we're in DevOps-land you really should be using your configuration management system for these things.






                        share|improve this answer


























                          1












                          1








                          1







                          You should regenerate this file from a template using your configuration management system of choice.



                          You could also write a shell script that uses a heredoc to do the same thing. But since we're in DevOps-land you really should be using your configuration management system for these things.






                          share|improve this answer













                          You should regenerate this file from a template using your configuration management system of choice.



                          You could also write a shell script that uses a heredoc to do the same thing. But since we're in DevOps-land you really should be using your configuration management system for these things.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 2 days ago









                          chickschicks

                          1,1391423




                          1,1391423






















                              Simran kaur is a new contributor. Be nice, and check out our Code of Conduct.










                              draft saved

                              draft discarded


















                              Simran kaur is a new contributor. Be nice, and check out our Code of Conduct.













                              Simran kaur is a new contributor. Be nice, and check out our Code of Conduct.












                              Simran kaur is a new contributor. Be nice, and check out our Code of Conduct.
















                              Thanks for contributing an answer to DevOps 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%2fdevops.stackexchange.com%2fquestions%2f6615%2fshell-script-to-pass-values-properties-file-in-java%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

                              Callistus I

                              Tabula Rosettana

                              How to label and detect the document text images