[Risolto] output grep non a capo

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[Risolto] output grep non a capo

Messaggioda ndrini » venerdì 11 agosto 2017, 13:07

Ciao, vorrei tenere conto della velocitá delle reti hotspot wifi a chi mi collego.
Con speedtest-cli mi trovo bene.

Codice: Seleziona tutto
ndr:~$ echo "$(date +"%d/%m/%Y %H:%M:%S" ) --> $(speedtest-cli |grep 'Testing from\|Download\|Upload') " 
11/08/2017 13:00:11 --> Testing from Orange (85.53.92.245)...
Download: 140.03 Mbit/s
Upload: 82.93 Mbit/s
ndr:~$ echo "$(date +"%d/%m/%Y %H:%M:%S" ) --> $(speedtest-cli |grep 'Testing from|Download|Upload') " 
11/08/2017 13:01:32 -->


Solo non so come utilizzare grep affinché l'output stia su una sola riga.

Pare che non si possa, ma usando tr si dobrebbe riuscire:
ndr:~$ echo "$(date +"%d/%m/%Y %H:%M:%S" ) --> $(speedtest-cli |grep 'Testing from|Download|Upload')" | tr '\n' ' '
:birra:

ma toglie anche l'ultimo
Codice: Seleziona tutto
ndr:~$ echo "$(date +"%d/%m/%Y %H:%M:%S" ) --> $(speedtest-cli |grep 'Testing from\|Download\|Upload') "  | tr '\n' ';'
11/08/2017 13:39:24 --> Testing from Orange (85.53.92.245)...;Download: 136.75 Mbit/s;Upload: 78.34 Mbit/s ;ndr:~$


Ciao.
Andrea
Ultima modifica di ndrini il venerdì 11 agosto 2017, 16:24, modificato 1 volta in totale.
Avatar utente
ndrini
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 427
Iscrizione: settembre 2009

Re: output grep non a capo

Messaggioda ndrini » venerdì 11 agosto 2017, 16:23

Ok, "me la canto e me la suono" da solo.

La cosa era che non riuscivo ad applicare il comando tr senza l'uso del pipe |.

Mi spiego meglio, pensavo di risolvere spezzettando il problema in passaggi:
    A = misurazione
    tr A : cosí da togliere gli "a capo"
    echo $A >> nome_file.txt

Ma tr A io non lo so fare, so fare solo A | tr.


Poi ho notato che se voglio fare echo "testo" si fa così, ma se voglio fare echo "risultato di una funzione" si fa echo "$( funzione ) "

quindi così ho fatto:

Codice: Seleziona tutto
 echo "$( echo  "$(date +"%d/%m/%Y %H:%M:%S" ) --> $(speedtest-cli |grep 'Testing from\|Download\|Upload') "  | tr '\n' ';'       )
 


e per salvare in un file esterno:


Codice: Seleziona tutto
 echo "$( echo  "$(date +"%d/%m/%Y %H:%M:%S" ) --> $(speedtest-cli |grep 'Testing from\|Download\|Upload') "  | tr '\n' ';'       )"  >> nome_file.txt
 



La struttura
Codice: Seleziona tutto
 echo "$(      echo  "$( ... ) "  | tr  ...  )"  >> nome_file.txt 

non sará elegante, ma funziona :-)

Andrea
Avatar utente
ndrini
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 427
Iscrizione: settembre 2009

Re: [Risolto] output grep non a capo

Messaggioda UbuNuovo » venerdì 11 agosto 2017, 18:59

Non c'è bisogno di 'tr'.
Per non far andar a capo il testo su più righe, basta non usare gli apici.
per esempio, io farei così
(per migliore comprensibilità del codice e flessibilità, metterei i dati acquisiti su due variabili e poi rimonterei la il testo da stampare a mio piacimento.)
(ho usato grep -P per poter accorciare la riga direttamente):

Codice: Seleziona tutto
data_ora=$(date +"%d/%m/%Y %H:%M:%S")
dati=$(speedtest-cli | grep -Po 'Testing from \K.*|Download.*|Upload.*')
echo "$data_ora --> "$dati


Puoi fare la redirezione su file normalmente dalla riga con 'echo'.

P.S.: se vuoi accorciare ancora di più e non ti interessa l'IP:
Codice: Seleziona tutto
grep -Po 'Testing from \K.* |Download.*|Upload.*'
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 2890
Iscrizione: dicembre 2009
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile

Re: [Risolto] output grep non a capo

Messaggioda ndrini » venerdì 11 agosto 2017, 19:54

Grazie 1000.
Poi lo studio con attenzione.
Andrea

PS si l'IP mi interessa, per sapere a quale rete attribuire la velocità
Avatar utente
ndrini
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 427
Iscrizione: settembre 2009


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 2 ospiti