Risposte:
La tua shell "espanderà" l'asterisco in grep * -c
ad ogni cosa nella directory corrente, risultando, ad esempio:
grep foo bar baz -c
Che non è quello che vuoi
Provare cat file | grep -c .
per contare il numero di righe contenenti almeno un carattere stampabile, o cat file | wc -l
per contare il numero di linee.
Se l'input è un file, tuttavia, è possibile considerare di concedere l'accesso al file anziché collegarlo a stdin, al comando che esegue il conteggio. (per esempio wc -l file
o grep . -c file
).
Se non vuoi wc
per mostrare il nome del file quando gli si assegna un nome file, è possibile estrarre la prima parola dell'output di wc -l
con il tuo filtro preferito, come cut(1)
: wc -l foo | cut -d' ' -f 1
o awk(1)
: wc -l foo | awk '{print $1}'
o qualcos'altro con lo stesso effetto.
Numera tutte le righe non vuote:
cat file | nl
O includere tutto:
cat file | nl -ba