¿Cómo elimino todas las líneas con ".png" en un file?

Tengo una list de URL de las cuales algunas apuntan a imágenes:

http://s.thebrighttag.com/iframe?c=A5lqOqP http://s.wordpress.com/imgpress?resize=136,136&url=http%3A%2F%2Fdata.whicdn.com%2Fimages%2F2833524%2F4thofJuly-collage_large.jpg%3F1278084193 

¿Cómo elimino esas líneas del file?

 cat file | grep -v "\.png" >new_file_without_pngs 

Actualizado para comentario:

 egrep -iv "\.(png|jpg|jpeg|gif|etc)" file >new_file 

Para la variante de edición in situ, puede usar sed la siguiente manera:

 $ sed -i -r 's/.*\.(png|jpg).*//I' file 

Eliminará las líneas que contengan .png o .jpg directamente en el file. La opción -i pasada a sed significa 'edición in situ'. Haga una copy de security de su file antes de ejecutar este command, o pruébelo primero sin la opción -i si no está seguro.

La bandera I es para realizar una coincidencia insensible a mayúsculas y minúsculas.

Puedes usar Vim en modo Ex:

 ex -sc 'g/\.png/d' -cx file 
  1. g búsqueda global

  2. d borrar

  3. x save y cerrar

Si tiene una sponge , puede cambiar el contenido de un file en un lugar como este:

 grep -E -iv "\.(png|jpg|jpeg|gif)" file | sponge file