Aug 11, 2011
tom

alias to replace a text in file

Question

here is a practical situation.I facing some of my files where there is a common string in these files.I usually will open vi and do some thing like

:%s/text/replacement/g

and I have to do it in many files many many times.
Is there some easy way to do it or some sort of alias that I can create for the same?

Answer

You can use find for finding the target files and then pipe it to sed:

find | xargs sed -i ‘s/foo/bar/g’

Only replace in .txt files:

find . -name “*.txt” -print | xargs sed -i ‘s/foo/bar/g’

(from this blog post)

Related posts:

  1. tar too slow when file doesn’t exist!
  2. Replace text on MySQL – Wildcards to replace certain variable parts?
  3. sed replace slash
  4. How can I handle spaces in file names when using xargs on find results?
  5. SED replace across multiple lines

Leave a comment