Это JSON, а инструменты Linux не очень подходят для работы с JSON. И ваши условия не очень ясны ... Но этот однострочный Perl выводит из вашего примера строку «I win»
perl -0777 -nE 's/.*"(.+?)","confidence".*/$1/s; say'
Обратите внимание, что когда вы выполняете - mtime
,
проверяет возраст файла на момент запуска find
.
Если вы не запустите его в очень маленьком дереве каталогов, find
займет несколько миллисекунд (если не секунд или часов), чтобы просканировать дерево каталогов и выполнить lstat ()
на каждый файл. Таким образом, точность меньше секунды не обязательно имеет большой смысл.
Также обратите внимание, что не все файловые системы поддерживают метки времени с субсекундной детализацией.
Однако есть несколько вариантов.
С помощью find
многих BSD и одного из schily-tools
вы можете:
find . -atime -1s
Чтобы найти файлы, к которым последний раз доступ осуществлялся менее секунды назад ( по сравнению с тем, когда был запущен find
).
С zsh
:
ls -ld -- **/*(Dms-1)
Для субсекундной детализации с инструментами GNU вы можете использовать справочный файл, время которого вы установили с помощью touch
:
touch -ad '0.5 seconds ago' ../reference
find . -anewer ../reference
Или с последними версиями perl
:
perl -MTime::HiRes=lstat,clock_gettime -MFile::Find -le '
$start = clock_gettime(CLOCK_REALTIME) - 0.5;
find(
sub {
my @s = lstat $_;
print $File::Find::name if @s and $s[8] > $start
}, ".")'
С помощью GNU find вы можете использовать -amin
вместо -atime
. Как вы могли догадаться, это «последний раз доступ к файлу был осуществлен n минут назад»
. Тем не менее, имейте в виду, что большинство современных систем по умолчанию используют параметр relatime
для файловых систем, который сохраняет записи метаданных только обновление, если файл был фактически изменен с момента последнего доступа или если превышен порог (обычно 24 часа).
Итак, вы, вероятно, захотите либо изменить это для рассматриваемой файловой системы, либо поищите другой подход. incrond - удобный способ настроить сценарии для запуска при активности файловой системы без необходимости писать собственный демон.