Ваша проблема в том, что, пока ваша программа выбирает OK, лог-файл, блок {} должен выполняться для каждой строки входного файла, а у вас нет входного файла, поэтому он по умолчанию используется для стандартного ввода. Я сам не очень хорошо знаю awk, поэтому не знаю, как изменить ввод (если возможно) из скрипта awk, поэтому я бы:
#! /bin/awk -f
BEGIN{
# find the newest file
command = "ls -1rt | tail -1 "
command | getline logfile
close(command)
while((getline<logfile)>0){
getline<logfile
# do the magic
print $0
}
}
или, может быть,
alias myprog.awk="awk '{print $0}' `ls -1rt | tail -1`"
Опять же, это может быть немного грязно. Мы будем ждать лучшего ответа. : -)