delladea: (Default)
Geeky Muse ([personal profile] delladea) wrote in [site community profile] dw_dev_training2012-02-03 01:52 pm
Entry tags:

Strip tab characters from multiple text files and replace them with spaces (or something else)

I switch between Gedit, Notepad++, and vim fairly often depending on what I'm doing and whose computer I'm on. Sometimes I end up with tab characters where I really wanted four spaces, mainly when I'm using vim and I haven't figured out how to get vim to not do this. Gedit and Notepad++ have settings to use spaces instead of tabs, so there's no issue there.

Either I don't notice the tab characters until after I've put lots of them in the file I'm editing, or I'm editing a file from someone else whose editor uses tab characters for indentation. I know its not a big deal to some people, but tab indentation mixed with space indentation is a huge pet peeve of mine.

Thus, a perl script was born:


View Gist (strip-tabs.pl)

Feel free to gank away if you find it useful!
pne: A picture of a plush toy, halfway between a duck and a platypus, with a green body and a yellow bill and feet. (Default)

[personal profile] pne 2012-02-06 10:09 am (UTC)(link)
Another way of doing this is using sed, like this:

sed -ie 's/\t/ /g' yourfile.pl


Perl also has an -i switch (I think due, in part, to its originally having to compete with the established sed).

So you could boil down the script to something like perl -i -pe "s/\t/    /g" file1 file2 file3 .
Edited 2012-02-06 10:10 (UTC)