Skip to content

Instantly share code, notes, and snippets.

@jappy
Created March 10, 2012 18:03
Show Gist options
  • Star 19 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save jappy/2012320 to your computer and use it in GitHub Desktop.
Save jappy/2012320 to your computer and use it in GitHub Desktop.
Shell script to convert files with CRLF to LF (Mac/Linux)
#! /bin/sh
for x
do
echo "Converting $x"
tr -d '\015' < "$x" > "tmp.$x"
mv "tmp.$x" "$x"
done
@jappy
Copy link
Author

jappy commented Mar 10, 2012

Usage

Make executable:

chmod +x dos2unix.sh

Apply to filename.txt

./dos2unix.sh filename.txt

Feel free to wildcard the file:

./dos2UNIX.sh [ab]*.txt

@jappy
Copy link
Author

jappy commented Mar 10, 2012

Sed Style

from the sed 1liners...

http://www.dbnet.ece.ntua.gr/~george/sed/1liners.txt

TEXT CONVERSION AND SUBSTITUTION:

# IN UNIX ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format
sed 's/.$//' # assumes that all lines end with CR/LF
sed 's/^M$//' # in bash/tcsh, press Ctrl-V then Ctrl-M
sed 's/\x0D$//' # sed v1.5 only

@tangshuang
Copy link

Well, how to conver files in batch?

@uded
Copy link

uded commented Dec 13, 2018

brew install dos2unix
find . -type f -print0 | xargs -0 dos2unix

@Muskos
Copy link

Muskos commented Nov 27, 2019

Some problem with script...
./dos2unix.sh: line 6: tmp.filename.js: No such file or directory

@jappy
Copy link
Author

jappy commented Nov 27, 2019 via email

@Muskos
Copy link

Muskos commented Nov 28, 2019

tr -d '\015' < "$x" > "tmp.$x"
Will script create this tmp file? Will I need to create this tmp file by myself?

@wirekang
Copy link

tr -d '\015' < "$x" > "tmp.$x" Will script create this tmp file? Will I need to create this tmp file by myself?

This script makes tmp file and overwrite original file. You don't need to do anything.

@blacknred0
Copy link

Thanks for sharing this!!!!

I was having some issues with the tmp file not being found. I ended up contacting the string and then run the code. Here is what I ended up doing in the end.

for x
do
    echo "Converting $x"
    temp_file+="tmp."$x
    tr -d '\015' < "$x" > temp_file
    mv temp_file "$x"
done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment