Concatenate and print (display) the content of files.

       cat [-benstuv] [-] [file ...]

     -b      Number the non-blank output lines, starting at 1.

     -n      Number the output lines, starting at 1.

     -s      Squeeze multiple adjacent empty lines, causing the output to be
             single spaced.

     -u      Disable output buffering.

     -v      Displays non-printing characters so they are visible. 
             Control characters print as `^X' for control-X;
             The delete character (octal 0177) prints as `^?' 
             Non-ascii characters (with the high bit set) are printed as `M-' (for meta)
             followed by the character for the low 7 bits.

     -e      Display non-printing characters and display a dollar sign ($) at the
             end of each line.

     -t      Display non-printing characters and display tab characters as ^I at the
             end of each line.

     -       Read from the standard input.

With no FILE, or when FILE is -, read standard input.
When given a single FILE, cat will pass the file unchanged to STDOUT (by default the display). 

cat exits 0 on success, and >0 if an error occurs.

The cat command can be piped into grep to find specific words in the file:
cat file.txt | grep keyword output.txt

However all modern versions of grep have this built-in. Running a single command/process is more efficient, and so with large files will be noticably faster:
grep keyword file.txt output.txt

grep can also display an entire file, (like cat), by using the grep keyword "." which will match lines with at least 1 character. Alternatively the grep keyword "^" will match the beginning of every line including blank lines.
When grep is used to display multiple files, it will prepend each line of output with the filename:
$ grep . *.txt


Display a file:
$ cat myfile.txt

Display all .txt files:
$ cat *.txt

Concatenate two files:
$ cat File1.txt File2.txt > union.txt

If you need to combine two files but also eliminate duplicates, this can be done with sort unique:
$ sort -u File1.txt File2.txt > unique_union.txt

Put the contents of a file into a variable
$ my_variable=`cat File3.txt`

“To be nobody but yourself - in a world which is doing its best, night and day, to make you like everybody else - means to fight the hardest battle which any human being can fight, and never stop fighting” ~ E. E. Cummings

Related macOS commands

cp - Copy one or more files to another location.
mv - Move or rename files or directories.
hexdump - View binary file.
tail - Output the last part of files.
textutil - Manipulate text files in various formats.
vis - Display non-printable characters in a visual format.
Stupid Cat tricks - by Mike Chirico.

Copyright © 1999-2024
Some rights reserved