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.