[ACCEPTED]-How to determine the line ending of a file-line-endings
You can use the file
tool, which will tell you 4 the type of line ending. Or, you could 3 just use dos2unix -U
which will convert everything 2 to Unix line endings, regardless of what 1 it started with.
You could use grep
egrep -l $'\r'\$ *
0
Something along the lines of:
perl -p -e 's[\r\n][WIN\n]; s[(?<!WIN)\n][UNIX\n]; s[\r][MAC\n];' FILENAME
though some 5 of that regexp may need refining and tidying 4 up.
That'll output your file with WIN, MAC, or 3 UNIX at the end of each line. Good if your 2 file is somehow a dreadful mess (or a diff) and 1 has mixed endings.
Here's the most failsafe answer. Stimms 2 answer doesn account for subdirectories 1 and binary files
find . -type f -exec file {} \; | grep "CRLF" | awk -F ':' '{ print $1 }'
- Use
file
to find file type. Those with CRLF have windows return characters. The output offile
is delimited by a:
, and the first field is the path of the file.
Unix uses one byte, 0x0A (LineFeed), while 4 windows uses two bytes, 0x0D 0x0A (Carriage 3 Return, Line feed).
If you never see a 0x0D, then 2 it's very likely Unix. If you see 0x0D 1 0x0A pairs then it's very likely MSDOS.
Windows use char 13 & 10 for line ending, unix 4 only one of them ( i don't rememeber which 3 one ). So you can replace char 13 & 10 2 for char 13 or 10 ( the one, which use unix 1 ).
When you know which files has Windows line 9 endings (0x0D 0x0A
or \r \n
), what you will do with that 8 files? I supose, you will convert them into 7 Unix line ends (0x0A
or \n
). You can convert file 6 with Windows line endings into Unix line 5 endings with sed
utility, just use command:
$> sed -i 's/\r//' my_file_with_win_line_endings.txt
You 4 can put it into script like this:
#!/bin/bash
function travers()
{
for file in $(ls); do
if [ -f "${file}" ]; then
sed -i 's/\r//' "${file}"
elif [ -d "${file}" ]; then
cd "${file}"
travers
cd ..
fi
done
}
travers
If you 3 run it from your root dir with files, at 2 end you will be sure all files are with 1 Unix line endings.
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.