2010-09-03 27 views
5

cómo encontrar el número de líneas que tengo en archivo por el SED (necesidad de hacer caso omiso de los espacios y líneas vacías)¿Cómo contar el número de líneas no vacías en un archivo usando sed?

por ejemplo

si tengo archivo con 139 líneas (línea puede incluir sólo un carácter) a continuación, SED debe devolver 139

lidia

+0

[Esta página] (http://www.unixguide.net/unix/sedoneliner.shtml) dice que hacer: 'sed -n '$ ='' – Seth

+0

@Seth: Eso es simplemente 'wc -l' que no ignora las líneas en blanco como OP quiere. – codaddict

+0

¡muestre su código la próxima vez! – ghostdog74

Respuesta

11

Este es un trabajo para grep, no sed:

<myfile grep -c '[^[:space:]]' 
3

que puede probar:

sed -n '/[^[:space:]]/p' filename | wc -l 

Aquí sed imprime solo aquellas líneas que tienen al menos un carácter no espacial y wc cuenta esas líneas.

1

Utilice nawk en lugar de sed.

nawk 'NF{c++}END{print "total: "c}' file 
0
sed '/^ *$/ d' filename | wc -l 

Aquí, sed impresiones de las líneas después de la eliminación de todas las líneas con 0 o más espacios desde el principio hasta el final. wc -l es contar el número de estas líneas.

0

Utilizando Perl de una sola línea:

perl -lne '$count++ if /\S/; END { print int $count }' input.file 
Cuestiones relacionadas