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