Sed conteggio righe

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
avr3
Prode Principiante
Messaggi: 4
Iscrizione: mercoledì 6 luglio 2016, 21:43
Distribuzione: ubuntu 15.04
Sesso: Maschile

Sed conteggio righe

Messaggio da avr3 »

Ciao a tutti, ho un grosso dilemma... ho bisogno di fare conteggiare con il comando sed il totale delle righe usando un pattern di ricerca e di stampare il valore nella prima riga.
Esempio
Dati: : qui il totale delle righe con pattern di ricerca Nome
Nome Mario
Nome Franco
Nome Luca
Nome Giuseppe
Chiaramente sto usando il comando:
sed '/Nome/p' file | wc -l
Mi stampa tranquillamente il risultato delle ricorrenze del pattern Nome, ma non riesco ad aggiungerlo alla fine della prima riga.
Vi ringrazio
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: Sed conteggio righe

Messaggio da crap0101 »

penso proprio che sei costretto a farlo in due tempi, e nel caso ci fosse una soluzione con un'unica passata di sed ho paura a pensare quanto poco leggibile sarebbe; altrimenti usi altro, tipo awk, perl, ecc.
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
avr3
Prode Principiante
Messaggi: 4
Iscrizione: mercoledì 6 luglio 2016, 21:43
Distribuzione: ubuntu 15.04
Sesso: Maschile

Re: Sed conteggio righe

Messaggio da avr3 »

Grazie per la info.
Infatti avevo gia pensato a questa soluzione e testato awk ma purtroppo non riesco a far stampare come descritto nel post principale. Infatti trovato in rete come ottenere questo passaggio ma la stampa del conteggio finale veniva inserito come ultima riga.
Purtroppo ho poche conoscenze con awk.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Sed conteggio righe

Messaggio da UbuNuovo »

Con AWK, avrei pensato di mettere in un array il campo voluto per poi farlo stampare solo in END

file dati.txt:

Codice: Seleziona tutto

8-) cat dati.txt
Nome Mario
Cognome	Bianchi
indirizzo via bla bla
Nome Franco
Cognome	Bianchi
indirizzo via bla bla
Nome Luca
Cognome	Bianchi
indirizzo via bla bla
Nome Giuseppe
Cognome	Bianchi
indirizzo via bla bla
eseguo:

Codice: Seleziona tutto

8-) awk '/Nome/ {a[i++]=$2} END {print "Dati: "i;for (i in a)print  a[i] }' dati.txt
Dati: 4
Mario
Franco
Luca
Giuseppe
P.S.: Se vuoi stampare tutta la riga basta sostituire $2 con $0 in {a[i++]=$2}

Comunque aspetta l'intervento di Crap che la sa lunga.
Salva l'Ucraina! 🇺🇦
avr3
Prode Principiante
Messaggi: 4
Iscrizione: mercoledì 6 luglio 2016, 21:43
Distribuzione: ubuntu 15.04
Sesso: Maschile

Re: Sed conteggio righe

Messaggio da avr3 »

Grazie veramente interessante.
Quello che volevo, infatti mi serve che stampi solo il totale delle righe..

Ancora grazie
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4446
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Sed conteggio righe

Messaggio da UbuNuovo »

Di nulla.
Semmai, per sicurezza, usa una regex più specifica, tipo:

Codice: Seleziona tutto

awk '/^Nome / {....
Ciaux
Salva l'Ucraina! 🇺🇦
avr3
Prode Principiante
Messaggi: 4
Iscrizione: mercoledì 6 luglio 2016, 21:43
Distribuzione: ubuntu 15.04
Sesso: Maschile

Re: Sed conteggio righe

Messaggio da avr3 »

Grazie..Ciauuu
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 15 ospiti