use SED recursively in linux?
I want to implement the following command recursively
sed -i 's/href=\"1\//href=\"\/1\//g' ./*
so that it replaces all href="1 with href="/1 in all sub-directories. Is there a flag I can add to this command to achieve the results I want?
Solution 1:
find . -type f -print0 | xargs -0 sed -i 's/href=\"1\//href=\"\/1\//g'
Solution 2:
Per https://stackoverflow.com/a/5130044/833771, if the target directory is a Git or SVN root, you should use:
find . -not \( -name .svn -prune -o -name .git -prune \) -type f -print0 | xargs -0 sed -i 's/href=\"1\//href=\"\/1\//g'