mirror of https://gitlab.com/curben/blog
1.1 KiB
1.1 KiB
title | excerpt | date | tags | |
---|---|---|---|---|
Use Unix line endings in Unix tools | Before you use any Unix tools to process some file, make sure the file only use Unix line endings. | 2018-11-08 |
|
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
.