Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

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.

share|improve this question
    
Define how a file is text or binary? –  Mark Jun 8 at 13:02
    
Text: No ASCII below 32, except for TAB, CR, LF. –  Max Ried Jun 8 at 13:07

2 Answers 2

up vote 15 down vote accepted

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/;' $*
share|improve this answer
    
Don't run this command in the root of a Git repository or else you'll ruin your repository! –  Nick Dec 5 '13 at 6:15
    
Also, I had better luck using perl -pi -e 's/\r\n|\n|\r/\n/;' $* (source) –  Nick Dec 6 '13 at 4:58

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

share|improve this answer
    
One line answers are discouraged. Try adding more detail, or comment on it. –  Max Ried Jun 8 at 15:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.