È possibile utilizzare wc per contare i caratteri di ogni riga invece della quantità totale di caratteri?
es.
echo -e foo\nbar\nbazz | grep -i ba
resi:
bar
bazz
Allora perché echo -e foo\nbar\nbazz | grep ba | wc -m
restituire un elenco delle lunghezze di quelle parole? (3 e 4)
Suggerimenti?
PS:perché gli avanzamenti di riga vengono conteggiati con wc -m ? wc -l conta le nuove righe, quindi perché dovrebbe wc -m contarli anche tu?
Risposta accettata:
wc conta sull'intero file;
Puoi usare awk elaborare riga per riga (senza contare il delimitatore di riga):
echo -e "foonbarnbazzn" | grep ba | awk '{print length}'
o come awk è principalmente un superset di grep :
echo -e "foonbarnbazzn" | awk '/ba/ {print length}'
(nota che alcuni awk le implementazioni riportano il numero di byte (come wc -c ) rispetto al numero di caratteri (come wc -m ) e altri conteranno i byte che non fanno parte di caratteri validi oltre ai caratteri (mentre wc -m li ignorerebbe nella maggior parte delle implementazioni))