sirve que para lineas instruccion contar comando shell wc

shell - que - Cómo obtener "wc-l" para imprimir solo el número de líneas sin nombre de archivo?



ls wc linux (7)

wc -l file.txt

muestra el número de líneas y el nombre del archivo.

Necesito solo el número en sí (no el nombre del archivo).

puedo hacer esto

wc -l file.txt | awk ''{print $1}''

Pero tal vez hay una mejor manera?


La mejor manera sería, antes que nada, encontrar todos los archivos en el directorio y luego utilizar AWK NR (Cantidad de registros variables)

a continuación está el comando:

find <directory path> -type f | awk ''END{print NR}''

ejemplo: - find /tmp/ -type f | awk ''END{print NR}'' find /tmp/ -type f | awk ''END{print NR}''


Obviamente, hay muchas soluciones para esto. Aquí hay otro:

wc -l somefile | tr -d "[:alpha:][:blank:][:punct:]"

Esto solo muestra el número de líneas, pero el carácter de nueva línea ( /n ) está presente, si no lo desea, reemplace [:blank:] con [:space:] .


Para hacer esto sin el espacio principal, ¿por qué no?

wc -l < file.txt | bc


Pruebe de esta manera:

wc -l < file.txt


Qué tal si

grep -ch "^" file.txt


Qué tal si

wc -l file.txt | cut -d'' '' -f1

es decir, pipe la salida de wc en cut (donde los delimitadores son espacios y selecciona solo el primer campo)


cat file.txt | wc -l

De acuerdo con la página man (para la versión BSD, no tengo una versión GNU para verificar):

Si no se especifican archivos, se usa la entrada estándar y no se muestra ningún nombre de archivo. El aviso aceptará entrada hasta que reciba EOF, o [^ D] en la mayoría de los entornos.