Home > Articles

  • Print
  • + Share This
This chapter is from the book

File Contents

In the last section we looked at listing files and directories with the ls command. In this section we will look at the cat and wc commands. The cat command lets you view the contents of a file. The wc command gives you information about the number of words and lines in a file.

cat

To view the contents of a file, we can use the cat (short for concatenate) command as follows:

cat [opts] file1 ... fileN

Here opts are one or more of the options understood by cat, and file1...fileN are the names of the files whose contents should be printed. The options, opts, are optional and can be omitted. Two commonly used options are discussed later in this section.

The following example illustrates the use of cat:

$ cat fruits

This command prints the contents of a file called fruits:

Fruit      Price/lbs    Quantity
Banana     $0.89      100
Peach      $0.79      65
Kiwi      $1.50      22
Pineapple    $1.29      35
Apple      $0.99      78

If more than one file is specified, the output includes the contents of both files concatenated together. For example, the following command outputs the contents of the files fruits and users:

$ cat fruits users
Fruit      Price/lbs    Quantity
Banana     $0.89      100
Peach      $0.79      65
Kiwi      $1.50      22
Pineapple    $1.29      35
Apple      $0.99      78

ranga
vathsa
amma

Numbering Lines

The -n option of cat will number each line of output. It can be used as follows:

$ cat -n fruits

This produces the output

   1 Fruit      Price/lbs    Quantity
   2 Banana     $0.89      100
   3 Peach      $0.79      65
   4 Kiwi      $1.50      22
   5 Pineapple    $1.29      35
   6 Apple      $0.99      78
   7

From this output, you can see that the last line in this file is blank. We can ask cat to skip numbering blank lines using the -b option as follows:

$ cat -b fruits

Now the output resembles the following:

   1 Fruit      Price/lbs    Quantity
   2 Banana     $0.89      100
   3 Peach      $0.79      65
   4 Kiwi      $1.50      22
   5 Pineapple    $1.29      35
   6 Apple      $0.99      78

The blank line is still presented in the output, but it is not numbered. If the blank line occurs in the middle of a file, it is printed but not numbered:

$ cat -b hosts
   1 127.0.0.1    localhost     loopback

   2 128.32.43.52  soda.berkeley.edu soda

If multiple files are specified, the contents of the files are concatenated in the output, but line numbering is restarted at 1 for each file. As an illustration, the following command,

$ cat -b fruits users

produces the output

   1 Fruit      Price/lbs    Quantity
   2 Banana     $0.89      100
   3 Peach      $0.79      65
   4 Kiwi      $1.50      22
   5 Pineapple    $1.29      35
   6 Apple      $0.99      78

   1 ranga
   2 vathsa
   3 amma

wc

Now let's look at getting some information about the contents of a file. Using the wc command (short for word count), we can get a count of the total number of lines, words, and characters contained in a file. The basic syntax of this command is:

wc [opts] files

Here opts are one or more of the options given in Table 3.1, and files are the files you want examined. The options, opts, are optional and can be omitted.

Table 3.1 wc Options

Option

Description

-l

Count of the number of lines.

-w

Count of the number of words.

-m

Count of the number of characters. This option is available on Mac OS X, OpenBSD, Solaris, and HP-UX. This option is not available on FreeBSD and Linux systems.

-c

Count of the number of characters. This option is the Linux and FreeBSD equivalents of the -m option.


When no options are specified, the default behavior of wc is to print out a summary of the number of lines, words, and characters contained in a file. For example, the command

$ wc fruits

produces the following output:

    8    18   219 fruits

The first number, in this case 8, is the number of lines in the file. The second number, in this case 18, is the number of words in the file. The third number, in this case 219, is the number of characters in the file. At the end of the line, the filename is listed. When multiple files are specified, the filename helps to identify the information associated with a particular file.

If more than one file is specified, wc gives the counts for each file along with a total. For example, the command

$ wc fruits users

produces output similar to the following:

    8   18   219 fruits
    3    3   18 users
   11   21   237 total
The output on your system might be slightly different.

Counting Lines

To count the number of lines, the -l (as in lines) option can be used. For example, the command

$ wc -l fruits

produces the output

    8 fruits

The first number, in this case 8, is the number of lines in the file. The name of the file is listed at the end of the line.

When multiple files are specified, the number of lines in each file is listed along with the total number of lines in all of the specified files. As an example, the command

$ wc -l fruits users

produces the output

    8 fruits
    3 users
   11 total

Counting Words

To count the number of words in a file, the -w (as in words) option can be used. For example, the command

$ wc -w fruits

produces the output

   18 hosts

The first number, in this case 18, is the number of words in the file. The name of the file is listed at the end of the line.

When multiple files are specified, the number of words in each file is listed along with the total number of words in all of the specified files. As an example, the command

$ wc -w fruits users

produces the output

   18 fruits
    3 users
   21 total

Counting Characters

To count the number of characters, we need to use either the -m or the -c option. The -m option is available on Mac OS X, OpenBSD, Solaris, and HP-UX. On FreeBSD and Linux systems, the -c option should be used instead.

For example, on Solaris the command

$ wc -m fruits

produces the output

    219 fruits

The same output is produced on Linux and FreeBSD systems using the command

$ wc -c fruits

The first number, in this case 219, is the number of characters in the file. The name of the file is listed at the end of the line.

When multiple files are specified, the number of characters in each file is listed along with the total number of characters in all the specified files. As an example, the command

$ wc -m fruits users

produces the output

    219 hosts
    18 users
    237 total

Combining Options

The options to wc can be grouped together and specified in any order. For example, to obtain a count of the number of lines and words in the file fruits, we can use any of the following commands:

$ wc -w -l fruits
$ wc -l -w fruits
$ wc -wl fruits
$ wc -lw fruits

The output from each of these commands is identical:

    8   18 fruits

The output lists the number of words in the files, followed by the number of lines in the file. The filename is specified at the end of the line. When multiple files are specified, the information for each file is listed along with the appropriate total values.

  • + Share This
  • 🔖 Save To Your Account