Find and replace in shell scripting

前端 未结 7 2121
暖寄归人
暖寄归人 2021-02-01 09:20

Is it possible to search in a file using shell and then replace a value? When I install a service I would like to be able to search out a variable in a config file and then repl

相关标签:
7条回答
  • 2021-02-01 09:55

    You can use sed to do this:

    sed -i 's/toreplace/yoursetting/' configfile 
    

    sed is probably available on every unix like system out there. If you want to replace more than one occurence you can add a g to the s-command:

    sed -i 's/toreplace/yoursetting/g' configfile 
    

    Be careful since this can completely destroy your configfile if you don't specify your toreplace-value correctly. sed also supports regular expressions in searching and replacing.

    0 讨论(0)
  • 2021-02-01 09:56

    You can use sed to perform search/replace. I usually do this from a bash shell script, and move the original file containing values to be substituted to a new name, and run sed writing the output to my original file name like this:

    #!/bin/bash
    mv myfile.txt myfile.txt.in
    
    sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt.
    

    If you don't specify an output, the replacement will go to stdout.

    0 讨论(0)
  • 2021-02-01 09:57
    filepath="/var/start/system/dir1"
    searchstring="test"
    replacestring="test01"
    
    i=0; 
    
    for file in $(grep -l -R $searchstring $filepath)
    do
      cp $file $file.bak
      sed -e "s/$searchstring/$replacestring/ig" $file > tempfile.tmp
      mv tempfile.tmp $file
    
      let i++;
    
      echo "Modified: " $file
    done
    
    0 讨论(0)
  • 2021-02-01 10:12

    Sure, you can do this using sed or awk. sed example:

    sed -i 's/Andrew/James/g' /home/oleksandr/names.txt
    
    0 讨论(0)
  • 2021-02-01 10:16

    Generally a tool like awk or sed are used for this.

    $ sed -i 's/ugly/beautiful/g' /home/bruno/old-friends/sue.txt
    
    0 讨论(0)
  • 2021-02-01 10:18
    sed -i 's/variable/replacement/g' *.conf
    
    0 讨论(0)
提交回复
热议问题