2010-06-20 17 views

risposta

56
END{print} 

dovrebbe farlo. Grazie a Ventero chi era troppo pigro per presentare questa risposta.

+0

Oh, è molto più semplice del mio modo.Nice –

12

È necessario utilizzare awk per questo? Perché non usare semplicemente tail -n 1 myFile?

+0

perché coda non veloce come awk – yael

+5

@yael Niente affatto; 'tail -1' sarà molto più veloce di' awk' per un file di grandi dimensioni. Ho provato su un file di linea ~ 3m; coda era istantanea mentre awk prendeva .44s –

+6

Il modulo '-1' è deprecato. Usa 'tail -n 1'. –

12

Utilizzare lo strumento giusto per il lavoro. Poiché si desidera ottenere l'ultima riga di un file, tail è lo strumento appropriato per il lavoro, soprattutto se si dispone di un file di grandi dimensioni. L'algoritmo di elaborazione dei file di Tail è più efficiente in questo caso.

tail -n 1 file 

Se davvero si desidera utilizzare awk,

awk 'END{print}' file 

EDIT: tail -1 file deprecato

2

È possibile così ottenere questo usando sed. Tuttavia, personalmente raccomando di utilizzare tail o awk.

In ogni modo, se si vuole fare da sed, qui ci sono due modi:

Metodo 1:

sed '$!d' filename 

Method2:

sed -n '$p' filename 

Qui, il nome del file è il nome del file che contiene dati da analizzare.

3

Trova l'ultima riga di un file:

  1. Usando sed (stream editor): sed -n '$p' fileName

  2. Utilizzare tail: tail -1 fileName

  3. utilizzando awk: awk 'END { print }' fileName

+0

Si prega di utilizzare il codice markup (\ 'codice \'). –

Problemi correlati