Skipping a Header in a File

Problem

You have a file with one or more header lines and you need to process just the data, and skip the header.

Solution

Use the tail command with a special argument. For example, to skip the first line of a file:

$ tail -n +2 lines
Line 2

Line 4
Line 5

Discussion

An argument to tail, which is a number starting dash (-), will specify a line offset relative to the end of the file. So tail -n 10 file shows the last 10 lines of file, which also happens to be the default if you don’t specify anything. But a number starting with a plus (+) sign is an offset relative to the top of the file. Thus, tail+1 file gives you the entire file, the same as cat. +2 skips the first line, and so on.

Get bash Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.