music
OSdata.com: programming text book 

OSdata.com

cat

summary

    This subchapter looks at cat, a UNIX (and Linux) command.

    The cat (as in concatenate) utility can be used to concatenate several files into a single file.

    cat is most often used to obtain the contents of a file for input into a Linux or UNIX shell script.

    cat was part of the original 1969 version of UNICS (the original name for UNIX).

create names file

    If you did not create the names file suggested in the quick tour subchapter, please do so now, because you will use this file in future exercises. If you already created the names file, then you can safely skip this step and go to the main body of instruction for this subchapter.

    Type the command line, followed by RETURN or ENTER, then type each of the six suggested lines, each followed by the RETURN KEY. After having enetered each line, make sure you are at the beginning of a new (blank or empty) line and type Ctrl-D (hold downt he CONTROL key and the D key at the same time).

    $ cat > names
    James
    Mary
    John
    Patricia
    Robert
    Linda
    CONTROL-D
    $

    The choice of names is based on the most popular names in the United States in the year before this subchapter was written. Bribe me if you want your name put into the example.

check the file was created

    Use ls to make sure the file was created properly. It should be added to your directory listing.

    $ ls
    Desktop          Movies        Send registration
    Documents        Music         Sites
    Downloads        Pictures      names
    Library          Public
    $

display file contents

    Use the cat command to show the contents of your new file.

    $ cat names
    James
    Mary
    John
    Patricia
    Robert
    Linda
    $

free book on UNIX/Linux System Administration

Teach Yourself UNIX/Linux System Administration and Shell Programming

free computer programming text book project

table of contents
If you like the idea of this project,
then please donate some money.
more information on donating

Google

cat

    This subchapter looks at cat, a UNIX (and Linux) command.

    cat is used concatenate file. The name is an abbreviation of catenate, a synonym of concatenate.

creating files

    One simple use of cat is to create simple files.

    Type cat > file01, followed by ENTER or RETURN.

    $ cat > file01

    The cursor will be at the beginning of a line that has no prompt. You are no longer in the shell, but instead in the cat utility. There is no cat prompt.

    Type the following lines (by convention, all of the input should be in bold, but to make it easier on the eye, it is in italics here):

    This is a line of text in my first file.
    This is another line.

    To be, or not to be: that is the question:

    1234567890
    ABC
    XYZ
    abc
    xyz

    Once you have typed in these lines, press RETURN to make sure you are at the beginning of a new line.

    Press Ctrl-D (hold down the CONTROL key and the D key at the same time). This indicates end-of-file (EOF), which informs cat that you have no more input. This will return you to the shell.

    Note that unlike some operating systems, the “.txt” file extension is not required by UNIX or Linux. It is optional, but the file extensions are often used to make it easier for a human to distinguish file types.

    Now repeat the process with the following file (by convention, all of the input should be in bold, but to make it easier on the eye, it is in italics here):

    There is a lot of typing in this example, but it is important for the upcoming exercises. Type the following lines (by convention, all of the input should be in bold, but to make it easier on the eye, it is in italics here):

    Because of the length of this file, you may want to download a copy from the internet. There is a copy at http://www.osdata.com/programming/shell/file02.txt — if you know how to download a copy and place it in your home directory, save yourself some typing time.

    $ cat > file02.txt

    This is a line of text in my second file.
    This is another line.

    To be, or not to be: that is the question:
    Whether 'tis nobler in the mind to suffer
    The slings and arrows of outrageous fortune,
    Or to take arms against a sea of troubles,
    And by opposing end them? To die: to sleep;
    No more; and by a sleep to say we end
    The heart-ache and the thousand natural shocks
    That flesh is heir to, 'tis a consummation
    Devoutly to be wish'd. To die, to sleep;
    To sleep: perchance to dream: ay, there's the rub;
    For in that sleep of death what dreams may come
    When we have shuffled off this mortal coil,
    Must give us pause: there's the respect
    That makes calamity of so long life;
    For who would bear the whips and scorns of time,
    The oppressor's wrong, the proud man's contumely,
    The pangs of despised love, the law's delay,
    The insolence of office and the spurns
    That patient merit of the unworthy takes,
    When he himself might his quietus make
    With a bare bodkin? who would fardels bear,
    To grunt and sweat under a weary life,
    But that the dread of something after death,
    The undiscover'd country from whose bourn
    No traveller returns, puzzles the will
    And makes us rather bear those ills we have
    Than fly to others that we know not of?
    Thus conscience does make cowards of us all;
    And thus the native hue of resolution
    Is sicklied o'er with the pale cast of thought,
    And enterprises of great pith and moment
    With this regard their currents turn awry,
    And lose the name of action. - Soft you now!
    The fair Ophelia! Nymph, in thy orisons
    Be all my sins remember'd.

    1234567890
    ABC
    XYZ
    abc
    xyz

    Now repeat the process with the following file (by convention, all of the input should be in bold, but to make it easier on the eye, it is in italics here — note the cheat method below):

    $ cat > numberfile
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    Once again, use the RETURN key to enter a new line and then use Ctrl-D to exit cat.

    If you want to cheat on making this file, you can use the following command on Mac OS X or BSD systems:

    $ jot 20 1 > numberfile.txt
    $

    You will use these files in many of the exercises in this book.

PC-DOS equivalent

    cat is the UNIX equivalent of the MS-DOS or PC-DOS command TYPE. You can add the PC-DOS equivalent to your shell session with the alias command. To make the change permanent, add the following line to the .bashrc file in your home directory. Note that if you add this PC-DOS/MS-DOS equivalent, only add the all upper case version, because the lower case type is an important UNIX command that you will also need.

    $ alias TYPE="cat"

view a file with cat

    Type cat file 01, followed by the RETURN or ENTER key. You should see the contents of your first file. The beginning of the file may scroll off the top of your screen (this is normal).

    $ cat file01
    This is a line of text in my first file.
    This is another line.

    To be, or not to be: that is the question:

    1234567890
    ABC
    XYZ
    abc
    xyz
    $

combine files with cat

    Type cat file 02 numberfile, followed by the RETURN or ENTER key. This will show you the contents of both files, one immediately after the other. This is the use for which cat was named.

    $ cat file02 numberfile
    This is a line of text in my second file.
    This is another line.

    To be, or not to be: that is the question:
    Whether 'tis nobler in the mind to suffer
    The slings and arrows of outrageous fortune,
    Or to take arms against a sea of troubles,
    And by opposing end them? To die: to sleep;
    No more; and by a sleep to say we end
    The heart-ache and the thousand natural shocks
    That flesh is heir to, 'tis a consummation
    Devoutly to be wish'd. To die, to sleep;
                …many text lines…
    The fair Ophelia! Nymph, in thy orisons
    Be all my sins remember'd.

    1234567890
    ABC
    XYZ
    abc
    xyz
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $

    This should list your new file that combines combines two of the files you created. The beginning of the listing will scroll off the top of your screen. Don’t worry about it. Well see how to view long files in the subchapter about less.

display with line numbers

    The following example uses the command cat with the -b option to add line numbers to the listing of the file.

    Type cat -b file01.txt.

    $ cat -b file01.txt
        1  This is a line of text in my first file.
        2  This is another line.

        3  To be, or not to be: that is the question:

        4  1234567890
        5  ABC
        6  XYZ
        7  abc
        8  xyz
    $

empty a file

    You can use cat to empty a file by sending /dev/null to the file to be emptied. The null device is bit nothingness.

    Start by making a copy of one of the files you just created so that you don’t wipe out your hard work.

    $ cp file01.txt emptyfile
    $

    Use cat to verify that the new file really does exist and has a complete copy of the original file.

    $ cat emptyfile.txt
    This is a line of text in my first file.
    This is another line.

    To be, or not to be: that is the question:

    1234567890
    ABC
    XYZ
    abc
    xyz
    $

    Now type cat /dev/null > emptyfile.txt. This will leave the file in existence, but empty it of all characters.

    $ cat /dev/null > emptyfile.txt
    $

    Confirm this by using both cat and wc (word count). The cat will simply return to the prompt because there is nothing to print out. The wc will show zero lines, zero words, and zero characters.

    $ cat file01.txt > emptyfile.txt
    $ wc names
           0       0      0 emptyfile.txt
    $

replacing files

    The previous example brings up the point that if you use cat to output to an existing file, the previous file will be completely replaced by the new one. There is no warning at all.

appending files

    You can append to the end of an existing file by using two greater than signs (no spaces in between) >>.

    Start by making a copy of an existing file and then confirming the copy is correct.

    $ cp file01.txt file03.txt
    $ cat file03.txt
    This is a line of text in my first file.
    This is another line.

    To be, or not to be: that is the question:

    1234567890
    ABC
    XYZ
    abc
    xyz
    $

    Now try the append.

    $ cat numberfile.txt >>.file03.txt
    $

    And confirm that your append worked.

    $ cat file03.txt
    This is a line of text in my first file.
    This is another line.

    To be, or not to be: that is the question:

    1234567890
    ABC
    XYZ
    abc
    xyz
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $

other

    On November 8, 2010, Ramesh Natarajan named this the number 30 most frequently used UNIX/Linux command at this web page 50 Most Frequently Used UNIX / Linux Commands (With Examples).

    In June 2009, Ken Milberg named this command as one of the Top 50 universal UNIX commands at this web page Top 50 Universal INIX commands. Note that this web page requires agreeing to be spammed before you can read it.


free music player coding example

    Coding example: I am making heavily documented and explained open source code for a method to play music for free — almost any song, no subscription fees, no download costs, no advertisements, all completely legal. This is done by building a front-end to YouTube (which checks the copyright permissions for you).

    View music player in action: www.musicinpublic.com/.

    Create your own copy from the original source code/ (presented for learning programming).

    Work on this project is very slow because I am homeless. I am available for work if someone can provide an indoor place to work in Costa Mesa, California, electricity, internet connections, a flat raised working surface (such as a table or desk), a sitting device (such as a chair or stool), and a fully functional reasonably modern used computer. I’m already homeless, so you don’t need to pay me (and I understand how much business people hate the minimum wage law). Just give me a chance to work.


return to table of contents
free downloadable college text book
free downloadable system administrator and shell programming book

view text book
HTML file

Because I no longer have the computer and software to make PDFs, the book is available as an HTML file, which you can convert into a PDF.

previous page next page
previous page next page

free book on UNIX/Linux System Administration

Teach Yourself UNIX/Linux System Administration and Shell Programming

free computer programming text book project

Building a free downloadable text book on computer programming for university, college, community college, and high school classes in computer programming.

If you like the idea of this project,
then please donate some money.

send donations to:
Milo
PO Box 1361
Tustin, California 92781

    At the time I am homeless. This greatly interferes with my ability to create this project, which can help nearly 20 million U.S. college students and more than 150 million students world-wide. I am looking for 30 rich people or corporations willing to donate $10 a month to my church so that the church can provide a place indoors for me to continue work. If you want to donate, please see help project. Thanks much.

Supporting the entire project:

    If you have a business or organization that can support the entire cost of this project, please contact Pr Ntr Kmt (my church)

more information on donating

Some or all of the material on this web page appears in the
free downloadable college text book on computer programming.


I do the news as an unpaid volunteer for KOCI 101.5 FM, Newport Beach/Costa Mesa (also available on the web)


Google


Made with Macintosh

    This web site handcrafted on Macintosh computers using Tom Bender’s Tex-Edit Plus and served using FreeBSD .

Viewable With Any Browser


    †UNIX used as a generic term unless specifically used as a trademark (such as in the phrase “UNIX certified”). UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Ltd.

    Names and logos of various OSs are trademarks of their respective owners.

    Copyright © 2012 Milo

    Created: February 9, 2012

    Last Updated: September 28, 2012


return to table of contents
free downloadable college text book
free downloadable system administrator and shell programming book

previous page next page
previous page next page