Предполагая, что строки продолжаются после «лямбда», как предлагает OP, эта команда должна работать:
gawk 'match($0, /execution\stime:([0-9]+)s/, a) && a[1] > 10 { print $0 }' logfile
с именем файла журнала (/root/.pm2/logs/proxy -out -1.log)
Это решение использует функцию match
для записи времени выполнения в виде группы в скобках, а затем основывает числовое сравнение на захваченном значении, чтобы решить, следует ли печатать строку.
Более длинная, но более портативная версия:
awk 'match($0, /execution time:([0-9]+)s/) && substr($0, RSTART+15, RLENGTH-16 ) > 10 { print }' testfile
Документация кfnameescape
содержит пример команды, которая перемещает курсор к последнему измененному файлу, но этот файл может также быть каталогом.
Итак, чтобы точно ответить на ваш запрос, поместите приведенный ниже фрагмент в ~/.config/vifm/vifmrc
, перезапустите Vifm, и теперь вы можете использовать ,f
для перехода к последнему файлу каталога, отличному от -,*.
"Cursor to most recently modified file
noremap,r :exe 'goto' fnameescape(system('ls -At | head -n 1'))<CR>
"Cursor to least recently modified file
noremap,o :exe 'goto' fnameescape(system('ls -Art | head -n 1'))<CR>
"Cursor to most recently modified non-directory file
noremap,f :exe 'goto' fnameescape(system('ls -Atp | grep -vm1 /'))<CR>
"Cursor to least recently modified non-directory file
noremap,l :exe 'goto' fnameescape(system('ls -Atrp | grep -vm1 /'))<CR>
Как видите, для вашего удобства я также предоставляю дополнительные сопоставления.
*Предполагается, что имя файла -не содержит символ новой строки.
Как это работает?
goto
— это функция Vifm, которая перемещает курсор к заданному файлу.
Требуемый файл — это первый не -файл каталога, указанный в ls -Atp
, т. е. первая строка без косой черты. grep -v /
отфильтровывает строки, содержат косую черту, а опция -m1
сообщает, что нужно возвращать только первое совпадение.
Хотя -m
доступен в системах BSD и GNU/Linux, он не требуется для POSIX. поэтому, если в вашем Grep его нет, просто используйте grep -v / | head -n 1
или sed '\:/:d;q'
.