Stripping ^M from your files

If you have transferred a file from MS Windows to FreeBSD, you might find the file looks like this:
<html>^M
^M
<head>^M
<title>The FreeBSD Diary -- Article Maintenance</title>^M
<meta name="description" content="BLANK">^M
<meta name="keywords" content="FreeBSD">^M

That "^M" is control-M, which is a carriage return, and is not needed in Unix file systems.  To remove this extra character, run the following script:

perl -pi -e "s:^V^M::g" <filenames>

where ^V is actually control-V and ^M is actually control-M (you must type these yourself, don't just copy and paste this command).  Control-V will not be displayed on your screen.

<filenames> is the list of files to be converted.

NOTE: I'm told that if you use ASCII mode to transfer your files, this problem won't occur.

Other options
I like people writing in with options.  Here are two other ways to get rid of the ^M characters:
  • Marc Silver writes that this will work:
cat <filename1> | tr -d "^V^M" > <newfile>    

Remember to actually type control-V then control-M.  Don't just copy and paste the above.

  • Trevor R.H. Clarke gave this example:
sed -e "s/^V^M//" <filename> > <output filename>

And remember to actually type control-V then control-M.  Don't just copy and paste the above.

  • Mario Sergio Fujikawa Ferreira writes of this vi solution.
  1. hit the ESC key
  2. :%s/^V^M//

remember the colon ( : ) at the start of step two.

  • Marius Strom mentions this port:
    cd /usr/ports/converters/unix2dos make && make install

    This port will also install dos2unix, which is useful for removing the control-M characters.

  • Oliver Crow reports this:
    col <infile >outfile

    [ed. note: make sure infile and outfile are not the same file or you'll lose the contents]

  • KeMpKeS reports this:
    Here's one you might want to add to the removing ^M from files page: open the file in pico, make a trivial change, then change it back (like add a space then delete it), then try to quit pico. When it asks you if you want to save changes, say yes. That''ll do it.

你可能感兴趣的:(Stripping ^M from your files)