GTKC Knowledgebase
A little bit of wisdom
(more) Using sed to delete lines from file
Posted by  Admin on


[Sed] Delete one or more lines from a file

Here is how to remove one or more lines from a file.

Syntax:
sed '{[/]||[/]}d'       
sed '{[/][,][/]d' 
/.../=delimiters 
n = line number 
string = string found in in line 
regex = regular expression corresponding to the searched pattern 
addr = address of a line (number or pattern ) 
d = delete 

Examples

Remove the 3rd line:
 
sed '3d' fileName.txt

Remove the line containing the string "awk":
 
sed '/awk/d' filename.txt

Remove the last line:
 
sed '$d' filename.txt

Remove all empty lines:
 
sed '/^$/d' filename.txt      
sed '/./!d' filename.txt

Remove the line matching by a regular expression (by eliminating one containing digital characters, at least 1 digit, located at the end of the line):
 
sed '/[0-9/][0-9]*$/d' filename.txt

Remove the interval between lines 7 and 9:
 
sed '7,9d' filename.txt 

The same operation as above but replacing the address with parameters:
 
sed '/-Start/,/-End/d' filename.txt

The above examples are only changed at the display of the file (stdout1= screen).

For permanent changes to the old versions (<4) use a temporary file for GNU sed using the "-i[suffix]":
 
sed -i".bak" '3d' filename.txt


Tags: Sed , Linux

Return to home page: Home