Extracting the First and Last Lines
It is sometimes useful to extract just a few lines from a text file—most commonly, lines near the beginning or the end. For example, the chapter titles for the XML files for this book are all visible in the first half-dozen lines of each file, and a peek at the end of job-log files provides a summary of recent activity.
Both of these operations are easy. You can display the first n records of standard input or each of a list of command-line files with any of these:
head -nn[file(s)] head -n[file(s)] awk 'FNR <=n' [file(s)] sed -enq [file(s)] sednq [file(s)]
POSIX requires a head option of
-n 3 instead of -3, but every implementation that we tested
accepts both.
When there is only a single edit command, sed allows the -e option to
be omitted.
It is not an error if there are fewer than n lines to display.
The last n lines can be displayed like this:
tail -nn[file] tail -n[file]
As with head, POSIX specifies only the first form, but both are accepted on all of our systems.
Curiously, although head handles multiple files on the command line, traditional and POSIX tail do not. That nuisance is fixed in all modern versions of tail.
In an interactive shell session, it is sometimes desirable to
monitor output to a file, such as a log file, while it is still being
written. The -f option asks tail to show the specified number of lines at the end of the file, and then to go into an endless loop, sleeping for a second before waking up and ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access