shell script replace variable of linux path

sed is a popular tool to be used to replace a string in a file.

For example, give a file, we can use the following command to replace all the string XXX into YY

sed -i s/XXX/YY/g fileName

or sed s/XXX/YY/g fileName > newFile

but when you want to replace linux path, the above method doesn’t work. You can try it your self.

here is a workable solution: 

pathA=”/user/xx/zz/”

pathB=”/user/aa/zz/dd”

sed “s,$pathA,$pathB,g” fileName > newFileName

then all the path of /user/xx/zz/ will be replaced by /user/aa/zz/dd.

It turned out, you can also change , to other characters such as #, ctr-A, et al, 

as long as the variables don’t contain the separator, it will work.