Vorrei verificare se due righe iniziano con lo stesso numero nella prima colonna, se ciò accade, allora il dovrebbe essere visualizzata la media della 2a colonna. Esempio file:Verifica se due righe iniziano con lo stesso carattere, in tal caso la media di uscita, in caso contrario, stampa il valore attuale
01 21 6 10% 93.3333%
01 22 50 83.3333% 93.3333%
02 20.5 23 18.1102% 96.8504%
02 21.5 100 78.7402% 96.8504%
03 22.2 0 0% 100%
03 21.2 29 100% 100%
04 22.5 1 5.55556% 100%
04 23.5 17 94.4444% 100%
05 22.7 9 7.82609% 100%
05 21.7 106 92.1739% 100%
06 23 11 17.4603% 96.8254%
06 22 50 79.3651% 96.8254%
07 20.5 14 18.6667% 96%
07 21.5 58 77.3333% 96%
08 21.8 4 100% 100%
09 22.6 0 0% 100%
09 21.6 22 100% 100%
Ad esempio, le prime due righe iniziano con 01
, ma c'è solo una linea iniziano 08
(linea 15). Pertanto, l'uscita sulla base di questi due casi dovrebbe essere:
01 21.5
...
...
...
08 21.8
...
...
...
ho finito con la seguente riga di awk, che funziona grande quando il file ha sempre due linee simili, ma non è riuscito utilizzando il file mostrato sopra (perché la linea 15):
awk '{sum+=$2} (NR%2)==0{print sum/2; sum=0;}'
Ogni suggerimento è accolto,
Questo eseguirà il core dump su un file vuoto. –
@EdMorton Sarei interessato ad altre informazioni su questa possibilità EdMorton, grazie per averlo indicato. – Gery
@anubhava grazie per la risposta, spiegheresti come funziona? grazie ancora! – Gery