Content
- Create a simple file for the tutorial
- How to filter the first/last n lines?
- How to remove n lines?
- How to filter specific lines?
Create a simple file for the tutorial.
First, let's create a simple file for this tutorial using the following command with seq and tee.
$seq 6 | tee filtering.txt
1
2
3
4
5
6
How to filter the first n lines?
Given the dummy file - filtering.txt -we've just created, we now move on to several ways of filtering n=3 lines as an example.
Using head
$< filtering.txt head -n 3
Using sed
$< filtering.txt sed -n '1,3p'
Using awk (NR refers to Number of Records)
$< filtering.txt awk 'NR<=3'
Filtering the last 3 lines is straighforward with tail
$< filtering.txt tail -n 3
How to filter the last n lines?
$< lines tail -n 3
How to remove n lines? (e.g., n=3)
Using tail
$< filtering.txt tail -n +4
Using sed
$< filtering.txt sed ‘1,3d’
How to remove the last n lines?
$< lines head -n -3
How to filter specific lines? For example, 4-6 lines
Using sed
$ < filtering.txt sed -n '4,6p'
Using awk
$ < filtering.txt awk '(NR>=4)&&(NR<=6)'
Using head and tail
$ < filtering.txt head -n 6 | tail -n 3
Using sed
$< filtering.txt sed -n '1~2p' # '0~2p' for even
Using awk
$< filtering.txt awk 'NR%2' # '(NR+1)%2' for even