Text files written on a Windows or DOS operating system use a carriage return character (ASCII decimal equivalent 13) followed by a line feed (ASCII decimal equivalent 10) as their line terminator, but on Linux, Unix and OS X systems, just the line feed character is used. And sometimes you'll find that there's just a carriage return character used - I've seen it this morning with a DreamWeaver generated Style sheet, for example.
If you're transferring text files around, you'll want / need to convert them in some way, but is you're transferring binary files (such as .jpg) , conversion will damage the content beyond redemption.
Here's a tiny utility that I use - a Perl program that converts a text file that's on a Unix / Linux / OS X box from an alien format to the local format.
#!/usr/bin/perl -p
s/\r\n?/\n/g;
Yes - that's it! Makes use of Perl's topicalisation and awk mode command line options. The
source code with comments is available here. I called it
cv, put it in a directory on my executable path, and made it executable ... and here's a test:
grahamellis$ od -c fiddle.txt
0000000 L i n e 1 \r \n L i n e 2 \r \n
0000020
grahamellis$ cv fiddle.txt > faddle.txt
grahamellis$ od -c faddle.txt
0000000 L i n e 1 \n L i n e 2 \n
0000016
grahamellis$
Other ways of converting ...
• if you transfer files through FTP in ASCII mode, the changes will be made during the transfer (and if you transfer a binary file in ASCII mode, you'll produce a damaged copy!)
• if you read files into certain utilities / editors, they'll convert the input for you silently and / or work in an alien mode. This applies to
vim and
wordpad, but
notepad can't cope.
• Utilities
dos2unix and
unix2dos are available on some operating systems.
(written 2006-12-30, updated 2007-01-02)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
A101 - Web Application Deployment - Linux -An Introduction For Users [73] vi - full circle - (2004-10-04)
[74] pushd and popd - (2004-10-05)
[152] Aladdin, or careful what you wish. - (2004-12-15)
[249] An easy way out - (2005-03-17)
[430] Linux commands - some basics - (2005-08-31)
[431] File permissions of Linux and Unix systems - (2005-08-31)
[593] Finding where the disc space has gone - (2006-02-06)
[659] Web Application Components - (2006-03-28)
[679] More or less on the edge of the page - (2006-04-11)
[703] Copying files and preserving ownership - (2006-04-28)
[710] Linux training Glasgow, Python programming course Dundee - (2006-05-05)
[711] THE home directory or MY home directory - (2006-05-06)
[749] Cottage industry or production line data handling methods - (2006-06-07)
[984] Cardinal numbers and magic numbers - (2006-12-14)
[1013] Copy multiple files - confusing error message from cp - (2006-12-30)
[1068] ls -l report, Linux / Unix - types and permssions - (2007-02-06)
[1259] Where am I and how did I get here? - (2007-07-05)
[1287] Work and play at Well House Manor - Football and Shell Shortcuts - (2007-08-02)
[1288] Linux run states, shell special commands, and directory structures - (2007-08-03)
[1366] awk - a powerful data extraction and manipulation tool - (2007-09-25)
[1408] Wireless hotel tips - FTP and Skype connections failing - (2007-10-26)
[1438] Copy and paste / cut and paste and other vi techniques - (2007-11-20)
[1527] Selecting file names in a shell - one word or another - (2008-02-02)
[1651] ls command - favourite options - (2008-05-23)
[1764] Yank and Push - copy and move in vi - (2008-08-21)
[1803] FTP passive mode - a sometimes cure for upload hangs - (2008-09-20)
[1893] Some Linux and Unix tips - (2008-11-18)
[1897] Keeping on an even keel - (2008-11-21)
[1902] sstrwxrwxrwx - Unix and Linux file permissions - (2008-11-23)
[1904] Ruby, Perl, Linux, MySQL - some training notes - (2008-11-23)
[2201] Running straight from the jar, but not from a tar - (2009-05-26)
[2203] Always use su with minus. And where do programs come from? - (2009-05-27)
[2299] How much space does my directory take - Linux - (2009-07-20)
[2300] What does x on a linux directory mean? - (2009-07-21)
[2479] Accidentally typed ci rather than vi? - (2009-10-27)
[2494] Making Linux Politically correct - (2009-11-06)
[2636] Linux - useful tips including history and file name completion - (2010-02-15)
[2831] Recording (a macro) in vi - (2010-06-27)
[3179] Oops - I typed ci not vi, and have lost my file ... - (2011-02-21)
[3256] Displaying a directory or file system tree - Linux - (2011-04-22)
[3791] The Kernel, Shells and Daemons. Greek Gods in computing - (2012-07-01)
[3819] Packing a tar, jar or war file - best practise - (2012-07-26)
Some other Articles
Modernising from tables to cascading style sheetsSearch engine placement - long term strategy and successChristmas Season PicciesMoving files between Windows / DOS and Linux / UnixWell House Manor and Beechfield House, Hotels, MelkshamDates, times, clickable diarys in PHPPassing GET parameters through Apache mod_rewriteDate conversion - PHPFriends and family