The following examples show you how sed command can be used as a powerful alternative to general commands like head, tail etc.

Let us consider the below input file for all the examples explained here.

[neo@techpulp ~]# cat input.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
Line11
Line12
Line13
Line14
Line15
Line16
Line17
Line18
Line19
Line20
[neo@techpulp ~]#

Print all lines

[neo@techpulp ~]# sed -e ''  input.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
Line11
Line12
Line13
Line14
Line15
Line16
Line17
Line18
Line19
Line20
[neo@techpulp ~]#

Do not print first 10 lines of input. Here “d” stands for deletion.

[neo@techpulp ~]# sed -e '1,10d' input.txt
Line11
Line12
Line13
Line14
Line15
Line16
Line17
Line18
Line19
Line20
[neo@techpulp ~]#

Print first ten lines of input

[neo@techpulp ~]# sed -e '1,10!d' input.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
[neo@techpulp ~]#

Display only first five lines

Here “p” stand for print and “-n” options negates default behaviour of printing.

[neo@techpulp ~]# sed -n -e '1,5p' input.txt
Line1
Line2
Line3
Line4
Line5
[neo@techpulp ~]#

Display lines 1 to 5 and 10 to 12

[neo@techpulp ~]# sed -n -e '1,5p' -e '10,12p' input.txt
Line1
Line2
Line3
Line4
Line5
Line10
Line11
Line12
[neo@techpulp ~]#

Do the same with the expressions delimited by new lines

[neo@techpulp ~]# sed -n -e '1,5p
> 10,12p' input.txt
Line1
Line2
Line3
Line4
Line5
Line10
Line11
Line12
[neo@techpulp ~]#

Do not display 1 to 5 and 10 to 12

[neo@techpulp ~]# sed -e '1,5d' -e '10,12d' input.txt
Line6
Line7
Line8
Line9
Line13
Line14
Line15
Line16
Line17
Line18
Line19
Line20
[neo@techpulp ~]#

Delete all lines after 11

[neo@techpulp ~]# sed -e '11,$d' input.txt
Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line10
[neo@techpulp ~]#

Print lines after 11

[neo@techpulp ~]# sed -n -e '11,$p' input.txt
Line11
Line12
Line13
Line14
Line15
Line16
Line17
Line18
Line19
Line20
[neo@techpulp ~]#

You can use !p or !d to negate the sed expression.