Episode: 1273
Title: HPR1273: LiTS 032: cat
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr1273/hpr1273.mp3
Transcribed: 2025-10-17 22:44:37

---

Welcome to Linux in the Shell episode 31.
My name is Dan Waschko.
I'll be your host and before starting, as always, I'd like to thank Hacker Public Radio
for hosting the website and the audio files.
HackerPublicRadio.org, check it out for some really great content every day of the week
and consider contributing to Hacker Public Radio because they're always looking for new
and fresh voices.
HackerPublicRadio.org.
Today, we're going to talk about the Cat command.
Cat command stands for concatenate, and basically what it does is it takes a file or standard
in and concatenates it or displays it to standard out or, but through redirection to another
file or using a pipe to another command.
Cat basic, but very versatile.
Let's talk about some of the basics switches for Cat command.
Cat, let's say you have a file called test.txt.
Cat test.txt is just going to display the contents of test.txt out to standard out.
So you're going to see that file.
Dash N or dash-number is going to number each line of the output of the file.
So if you do dash cat dash n test.txt, each line of that file is going to have a number
preceding it.
Very basic.
Now you can use a dash B or dash dash number dash non-blank, where the line number will
only be be front or proceed any non-blank line.
So any line that has text or characters on it, it will have a number.
But if it's a blank line, it will not number it.
It will just be a gap there.
But it will still preserve the contents of the file.
If there's a blank line, you'll see the blank line.
There's a dash S or dash dash squeeze blank, which removes repeated empty lines of output.
So if your test file has a number of lines, like a number of sentences, and then you have
a blank line and then a number of sentences, you'll see that blank line.
But if you have, after that blank line, there's four other blank lines for a total of five
blank lines.
You will only see one blank line.
You'll be able to suppress any repeated empty lines in the output.
So the kind of squeezed out is what ends up happening.
The cat command can show non-printing characters with the dash V or dash dash show non-printing,
which can be very handy.
If you are looking at a file, you want to make sure it doesn't have any like DOS line breaks
or anything like that in there.
You could do a cat dash V on the file, and it will show you all the line breaks in their
DOS line breaks or non-printing characters.
If you just cat the file, you won't see them.
If you less or more, or, you know, VI, the file, chances are you may not see them either.
But with the dash V, you can see the non-printing characters pretty handy.
Now if you really want to test this out, a way to get non-printing characters into a file,
you can do like VI or VIM, like VIM test.txt, and if you want to put a non-printing character
in there, you do control M and then control some other character like V. You can put in
there, control M, control V, we give you a non-printable character, which you can test this
out.
The dash E or dash dash show ends to cat command displays a dollar sign at the end of
each line.
So if you're not clear on where a line ends or you want to see line ends, it will put
the dash E, capital E, will show a dollar sign at the end of the line.
And if it's in the blank line, it will show a dollar sign only on that line.
Now that's stuff that's not going to be printed or show up in the file itself regularly
unless you do the dash capital E. So it's not adding anything to your file, just be
aware of that.
You can show tabs in a file, well, technically what it does is it kind of shows tab replacement
tab character.
If the dash capital T or dash dash show tabs, show dash tabs.
And instead of seeing the space where a tab would be, you're going to see a carrot ends
an L instead of, or a carrot and a capital I, sorry, instead of the tab itself.
So you'll see, if you had two tabs, you'd see carrot, capital I, carrot, capital I,
with the dash capital C.
Now some of these commands can be aggregated, instead of having to show each and every,
you know, put each and switch in there, you could do dash lower case E. And what that
does is it combines dash lower case V and capital E together, which means show all non-printing
characters and show the ends of the files.
All right, there's dash T, which combines, you guessed it, lower case V and capital T,
which shows non-printing characters and tabs.
Tab substitution, instead of tabs, you see the tab character.
Then there's dash A for everything, which is combination of dash V, capital E and capital
T. Now it shows all non-printing characters, shows the ends of lines, and shows tabs as
tab replacement character.
If you do not specify a file to the cat commands, it will accept input from standard in, which
means anything you type in standard in and hit enter is going to be echoed back out
on standard out.
Similarly, a dash, or a, yeah, dash for a file will signify to use standard in also.
And you could do some pretty neat stuff with that.
I saw a couple of years ago that the Linux from scratch project, they talked about using
or showed you how to use the cat command as a text editor, a quick and dirty text editor.
So you would type in cat, and you would output that, or redirect the output with a greater
than symbol, to a file like text.txt, and then into that with two less than symbols, you
would put in double quotes, E-O-F, for end of file.
So anything that you typed out after that, standard in would be redirected to test.sh until
you typed on a blank line, capital E-O-F, for end of file, and hit enter, it would stop
the cat command, it would close out the file, and all the stuff that you put in there would
be redirected to the test.txt file, quick and dirty text editor.
You can use a pipe, you can cat a file to a page or like less or more, although you could
already use less or more on the file without having to cat it.
You can cat stuff to grab, cat stuff to cut, whatever other command that you want to cat
things to.
So cat is a very basic, very handy command that you could do a lot with.
By itself, you can get the output of a file, but used in conjunction with redirects and
pipes, it can be a really handy useful tool for cutting things apart and breaking up
information and doing text manipulation.
That's Linux and the Shell Episode 32, the cat command, my name is Dan Waschko, I thank
you for listening, head on over to the website for the full write up and the video of the
document of using the cat command.
We'll see you here again in a couple of weeks and listen to hacker public radio because
some great stuff.
You have been listening to Hacker Public Radio at Hacker Public Radio.
We are a community podcast network that releases shows every weekday on day through Friday.
Today's show, like all our shows, was contributed by a HPR listener like yourself.
If you ever consider recording a podcast, then visit our website to find out how easy
it really is.
Hacker Public Radio was founded by the Digital Dark Pound and the Infonomicom Computer
Club.
HPR is funded by the binary revolution at binref.com, all binref projects are crowd-responsive
by linear pages.
From shared hosting to custom private clouds, go to lunarpages.com for all your hosting
needs.
Unless otherwise stasis, today's show is released under a creative commons, attribution,
shared life, digital license.
