Convert text files within a directory from Windows to Unix format


When a file is saved in Windows and then moved to a Linux system the formatting differences can cause a variety of problems. To effectively use these files you will need to change the format from Windows/DOS to Unix. This conversion occurs by simply removing the Windows carriage return characters.

I have explained how to use the tr command remove these windows carriage returns, but when you have a large amount of files to convert this can become tedious. As a solution to this I have written a BASH script to convert all text files within a directory.

  • ragnar

    recursive (script name must be or change the name below):

    for file in “$1″*; do
    if [[ -f $file && file $file | grep text && $file != “” ]]; then
    tr ‘\r’ ‘\n’ “$file”_clear
    mv “$file”_clear $file
    elif [[ -d $file && $file != “” ]]; then
    chmod +x
    echo “$file/”
    ./ “$file/”