2010-06-20 13 views

Répondre

56
END{print} 

devrait le faire. Merci à Ventero qui était trop paresseux pour soumettre cette réponse.

+0

Oh, c'est beaucoup plus simple que mon chemin.Nice –

12

Faut-il utiliser awk pour cela? Pourquoi ne pas simplement utiliser tail -n 1 myFile?

+0

parce que la queue n'est pas rapide comme awk – yael

+5

@yael Pas du tout; 'tail -1' sera beaucoup plus rapide que' awk' pour un gros fichier. J'ai essayé sur un fichier de ligne ~ 3m; tail était instantané tandis que awk prenait .44s –

+6

La forme '-1' est obsolète. Utilisez 'tail -n 1'. –

12

Utilisez le bon outil pour le travail. Puisque vous voulez obtenir la dernière ligne d'un fichier, tail est l'outil approprié pour le travail, surtout si vous avez un gros fichier. L'algorithme de traitement de fichiers de Tail est plus efficace dans ce cas.

tail -n 1 file 

Si vous voulez vraiment utiliser awk,

awk 'END{print}' file 

EDIT: tail -1 file dépréciée

2

Vous pouvez aussi bien y parvenir en utilisant sed. Cependant, je recommande personnellement d'utiliser tail ou awk.

Quoi qu'il en soit, si vous voulez faire par sed, voici deux façons:

Méthode 1:

sed '$!d' filename 

Method2:

sed -n '$p' filename 

Ici, le nom de fichier est le nom du fichier contenant des données à analyser.

3

Découvrez la dernière ligne d'un fichier:

  1. En utilisant sed (éditeur de flux): sed -n '$p' fileName

  2. En utilisant la queue: tail -1 fileName

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

+0

Veuillez utiliser le code de balisage (\ 'code \'). –

Questions connexes