--- title: Use Unix line endings in Unix tools date: 2018-11-08 tags: - 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](https://en.wikipedia.org/wiki/Newline#Representation). Note that many text files you downloaded most probably use Windows line endings. To [recap](https://en.wikipedia.org/wiki/Newline#Representation), 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`.