* Merged newxml into HEAD
[linux_from_scratch.git] / FAQ-OBSOLETE / dos-text.xml
blobdff337e22bf6b3c7d600787dba51e36eb9b12cb5
1 <qandaentry id="dos-text">
2 <question><para>What's a DOS format text file?</para></question>
3 <answer><para>It has to do with the characters used to end lines.
4 </para>
5 <para>There are two that may be used:
6 <itemizedlist>
8 <listitem><para>Line Feed: (LF) Octal:012 Decimal:10 Hex:0A C Style Escape:'\n'
9 Moves down one line.
10 </para></listitem>
12 <listitem><para>Carriage Return: (CR) Octal:015 Decimal:13 Hex:0D C Style Excape:'\r'
13 Move to the left margin.
14 </para></listitem>
16 </itemizedlist>
17 </para>
18 <para>Unix, DOS, and MacOS each use a different combination to end lines in text files:
19 <itemizedlist>
21 <listitem><para>Unix: LF only.
22 This is why when a Unix format text file is sent to a printer raw, it prints out
23 <screen>like
24     stairs
25           steps.
26 </screen>
27 </para></listitem>
29 <listitem><para>DOS: CRLF both.
30 Which is why if you do "cat -v" on a DOS file you'll see a "^M"
31 (control m is carriage return) at the end of each line. And that
32 is why scripts don't work when written with Microsoft Notepad.
33 The kernel looks for "/bin/sh^M" which doesn't exist. There's a
34 "/bin/sh", but nothing with a "^M" appended.
35 </para></listitem>
37 <listitem><para>MacOs: CR only.
38 Printers probably print every line atop the first, and Unix tools
39 think the whole file is one line with "^M" all through it.
40 </para></listitem>
42 </itemizedlist>
43 </para>
44 <para>To change DOS to Unix, use
45 <screen>cp &lt;filename> &lt;filename>.dos &amp;&amp;
46 cat &lt;filename>.dos | tr -d '\r' > &lt;filename>
47 </screen>
48 Other conversions will probably require sed or a different use of tr
49 and are left as an exercise for the reader.
50 </para></answer>
51 </qandaentry>