GNU/Linux >> Linux Esercitazione >  >> Linux

Contando i caratteri di ogni riga con Wc?

È 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))


Linux
  1. Lavorare con le pipe sulla riga di comando di Linux

  2. Come inserire del testo all'inizio di ogni riga in Vim

  3. Elimina i primi cinque caratteri su qualsiasi riga di un file di testo in Linux con sed

  4. Come posso anteporre una stringa all'inizio di ogni riga in un file?

  5. ottenere i primi 5 caratteri da ogni riga nello script di shell

Risolvi un enigma dalla riga di comando di Linux con Nudoku

Suggerimenti per elencare i file con ls nella riga di comando di Linux

Manipolazione del testo dalla riga di comando con grep

Tracciare il tempo con Timewarrior alla riga di comando

Usare il comando tr in Linux per giocare con i personaggi

Come controllare la versione con Git sulla riga di comando