There are multiple ways you can replace a string in multiple files in Linux.
Example:
Create multiple files and directories:
1 2 3 4 5 6 7 8 |
## create some files and directories mkdir -p mydir1/{mydir21/mydir211,mydir11/mydir111} echo "hello" > mydir1/myfile11 echo "hello" > mydir1/mydir11/myfile111 echo "hello" > mydir1/mydir11/mydir111/myfile1111 echo "world" > mydir1/myfile21 echo "world" > mydir1/mydir21/myfile211 echo "world" > mydir1/mydir21/mydir211/myfile2111 |
Find and replace a string in multiple files – case sensitive:
1 2 3 4 5 |
## find and replace case sensitive (replace world with cloudaffaire) find mydir1 -type f -exec sed -i 's/world/cloudaffaire/g' {} \; ## check if replaced cat mydir1/mydir21/mydir211/myfile2111 mydir1/mydir21/myfile211 mydir1/myfile21 |
Find and replace a string in multiple files – case insensitive:
1 2 3 4 5 6 7 |
## find and replace case insensitive (replace cloudaffaire with world) find mydir1 -type f -exec sed -i 's/CloudAffaire/world/gI' {} \; ## check if replaced cat mydir1/mydir21/mydir211/myfile2111 mydir1/mydir21/myfile211 mydir1/myfile21 rm -r my* |