2010-06-20 2 views

ответ

56
END{print} 

должен это сделать. Спасибо Ventero , которым было слишком лень, чтобы отправить этот ответ.

+0

О, это намного проще, чем мой путь.Nice –

12

Для этого необходимо использовать awk? Почему бы просто не использовать tail -n 1 myFile?

+0

потому что хвост не быстрый как awk – yael

+5

@yael Совсем нет; 'tail -1' будет быстрее, чем' awk' для большого файла. Я попробовал файл ~ 3m; хвост был мгновенным, а awk взял .44s –

+6

Форма '-1' устарела. Используйте 'tail -n 1'. –

12

Используйте подходящий инструмент для работы. Поскольку вы хотите получить последнюю строку файла, хвост является подходящим инструментом для работы, особенно если у вас большой файл. В этом случае алгоритм обработки файлов Tail более эффективен.

tail -n 1 file 

Если вы действительно хотите использовать AWK,

awk 'END{print}' file 

EDIT: tail -1 file осуждается

2

Также Вы можете добиться этого с помощью sed. Тем не менее, я лично рекомендую использовать tail или awk.

В любом случае, если вы хотите сделать, sed, вот два пути:

Метод 1:

sed '$!d' filename 

Method2:

sed -n '$p' filename 

Здесь имя файла; имя файл с данными, подлежащими анализу.

3

Узнать последнюю строку файла:

  1. Используя патч в (потоковый редактор): sed -n '$p' fileName

  2. Использование хвост: tail -1 fileName

  3. с использованием AWK: awk 'END { print }' fileName

+0

Пожалуйста, используйте разметку кода (\ 'code \'). –

Смежные вопросы