Использование zsh, либо изначально, либо черезzsh -c "..."
:
rm -f /path/to/folder/*(.m+0) # for that directory only
rm -f /path/to/folder/**/*(.m+0) # recursively
Скобки (
... )
создают zsh "квалификатор glob" . Внутри точка .
указывает простые файлы (, аналогичные find -type f
), а m+0
требует, чтобы время модификации файла было строго больше нуля дней назад, после усечения до целых дней — 23. часы 0 дней; 25 часов будет 1 день.
Чтобы еще больше соответствовать поведению find
по умолчанию при поиске/сопоставлении «скрытых» файлов (, которые начинаются с точки ), добавьте квалификатор заглавной D:
rm -f /path/to/folder/*(D.m+0) # for that directory only
rm -f /path/to/folder/**/*(D.m+0) # recursively
Ниже приводится awk
решение. Требуется GNU awk для функции gensub()
:
awk '$0=="EMC" {s=0} s{print FNR, gensub(/[^(]*\((.)\)[^(]*/, "\\1", "g")} /^\/(Span|H1) <<\/MCID$/ {s=1}' test.pdf
Это установит флаг s
в 1, когда будет найден начальный шаблон, определяемый как строка, начинающаяся с /Span
ИЛИ /H1
, за которой следует и заканчивается <</MCID
. Флаг будет сброшен, если будет найдена строка, состоящая из EMC
.
Внутри области (, т.е. когда s
равно 1 ), используйте функцию gensub()
для замены любого вхождения шаблона "любое количество символов, не являющихся (
, за которым следует один символ в ( )
, за которым следует любое количество символов, не являющихся (
", символом, содержащимся в ( )
. Затем он печатает номер текущей строки и извлеченный текст.
Обратите внимание , что это подразумевает отсутствие строк, которые не содержали бы такой шаблон между начальной и конечной строками.