Find and remove DOS line endings on Ubuntu
grep -URl ^M . | xargs fromdos
grep gets you a list of all files under the current directory that have DOS line endings.
-U
makes grep consider line endings instead of stripping them away by default
-R
makes it recursive
-l
makes it list only the filenames and not the matching lines
then you're piping that list into the converter command (which is fromdos
on ubuntu, dos2unix
where i come from).
NOTE: don't actually type ^M
. instead, you'll need to press <Ctrl-V>
then <Ctrl-M>
to insert the ^M
character and make grep understand what you're going for. or, you could type in $'\r'
in place of ^M
(but i think that may only work for bash...).
On ubuntu, you use the fromdos
utility
fromdos test.txt
The above example would take a MS-DOS or Microsoft Windows file or other file with different line separators and format the file with new line separators to be read in Linux and Unix.
Many options are there..you can try with any of these.. http://www.theunixschool.com/2011/03/different-ways-to-delete-m-character-in.html
One way using GNU coreutils
:
< file.txt tr -d '\r'