blog/source/_posts/unix-tools-line-endings.md

1.1 KiB

title date tags
Use Unix line endings in Unix tools 2018-11-08
Linux

Before you use any Unix tools to process some file, make sure the file only use Unix line endings.

Before you use any Unix tools to process some file, make sure the file only use Unix line endings.

Note that many text files you downloaded most probably use Windows line endings.

To recap,

Type Line ending Escape sequence
Windows CR LF \r\n
Unix (including Linux distro, *BSD and macOS) LF \n
Classic Mac OS (i.e. Mac OS 9 or older) CR \r

Unix tools, regardless from Busy/ToyBox, GNU or BSD, only support Unix line endings.

So, before you use any of them, make sure you convert the file to Unix line endings, especially before grep -f.

Use dos2unix to convert from Windows to Unix line endings, e.g.

# STDIN to STDOUT
cat input | dos2unix
# STDIN to FILE
cat input | dos2unix > output
# Convert and replace current file
dos2unix filename

If your distro includes BusyBox (e.g. Ubuntu), use busybox dos2unix.