I get it. It’s 2 a.m. and you need a name for a placeholder variable, but for some reason the only name you can think of is “
So you type
public int dicks = 5;, and keep going. Everything is golden…until the next day when you realize that you’re a full-grown adult with a paycheck and a degree who just wrote the word
dicks in a dozen different files, like a child.
This is never going to pass code review.
The good news: with a simple recursive find and replace operation, you can take all those
dicks in all those files and turn them into something more socially acceptable like
The bad news: it’s almost impossible to do recursive find and replace in Vim1, and you’re too proud to use a point-and-click editor.
In moments like this you couuuuld just cave and open Sublime or Atom and do a simple find and replace in 5 seconds and be done with it…OR you could do it in the command line, and use
xargs because you’re a real hacker with self-respect.
Without further ado, here’s how to do recursive find-and-replace in Mac OS X:
find . -name "*" -type f -print | xargs sed -i '' -e 's:dicks:foobar:g'
find . -name "*" -type f -print | xargs sed -i'' -e 's:dicks:foobar:g'
The above command will replace all occurrences of the string
foobar in all files starting at your current directory, sanitizing your code for the whole world to see. 2
Interesting tidbit: The Mac and Linux commands are different because Mac uses OpenBSD
sed, while Linux is all about that GNU
sed life. 3
Did you like this post? Hate it? Have a topic you’d like me to write about in the future? Tell me what you’d like to see more or less of in the comments below!