Sed - Delete one or more lines from a file

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

Syntax:

sed '{[/]<n>|<string>|<regex>[/]}d' <fileName>       
sed '{[/]<adr1>[,<adr2>][/]d' <fileName>
  • /.../=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

来源:http://en.kioskea.net/faq/1451-sed-delete-one-or-more-lines-from-a-file

Task: Remove blank lines using sed

Type the following command:

$ sed '/^$/d' input.txt > output.txt

Task: Remove blank lines using grep

$ grep -v '^$' input.txt > output.txt

Both grep and sed use special pattern ^$ that matchs the blank lines. Grep -v option means print all lines except blank line.

Let us say directory /home/me/data/*.txt has all text file. Use following for loop (shell script) to remove all blank lines from all files stored in /home/me/data directory:

#!/bin/sh
files="/home/me/data/*.txt"
for i in $files
do
  sed '/^$/d' $i > $i.out
  mv  $i.out $i
done

Updated for accuracy.

来源:http://www.cyberciti.biz/faq/howto-linux-unix-command-remove-all-blank-lines/

猜你喜欢

转载自justcoding.iteye.com/blog/1960206