Recursively converting files from dos line endings to unix line endings

I am looking for a command that I could use to run on an entire directory and subdirectory that will convert all line endings from DOS to UNIX.

It should be able to detect if a file is text or binary.

I installed dos2unix using macports but it looks that it does miss the recursive option.


Solution 1:

Try find . -name "*" -type f -exec dos2unix {} \;.


In case dos2unix is not available on your system, you can use the following script (save as dos2unix and set as executable):

#!/bin/sh

perl -pi -e 's/\r\n/\n/;' $*

Solution 2:

Here is one line shell code find . -name "*" -type f -exec perl -pi -e 's/\r\n/\n/;' {} \;