Печать последнего столбца строки в файле
у меня есть файл, который постоянно записываются/обновляются. Я хочу найти последнюю строку, содержащую определенное слово, а затем распечатать последний столбец этой строки.
файл выглядит примерно так. Со временем к нему будет добавлено больше строк A1/B1/C1.
A1 123 456
B1 234 567
C1 345 678
A1 098 766
B1 987 6545
C1 876 5434
Я пытался использовать
tail -f file | grep A1 | awk '{print $NF}'
для вывода значения 766, но ничего не выводится.
есть ли способ сделать это?
8 ответов:
вы ничего не видите, из-за буферизации. Вывод отображается, когда достаточно строк или достигнут конец файла.
tail -f
означает ждать больше ввода, но нет больше строк вfile
и так по трубе доgrep
никогда не закрывается.если вы опустите
-f
Сtail
вывод отображается сразу:tail file | grep A1 | awk '{print $NF}'
@EdMorton, конечно, прав. Awk поиск
A1
а также, что сокращает командную строку кtail file | awk '/A1/ {print $NF}'
или без хвоста, показывая последний столбец всех строк, содержащих
A1
awk '/A1/ {print $NF}' file