Как отсортировать выход "grep -l" в хронологическом порядке по последней дате последней модификации?
Я использую флаг -l с grep, чтобы просто распечатать соответствующие имена файлов.
Я хочу затем перечислить результаты (файлы) в порядке возрастания, т.е. самые последние последние.
Очевидно,
grep -l <pattern> *.txt | ls -rt
не то, что мне нужно, так как ls -lrt просто выводит все файлы.
Ответы
Ответ 1
Try:
ls -rt *.txt | xargs grep -l <pattern>
Сначала мы используем ls
для перечисления файлов *.txt
и сортируем их по времени модификации (новейший последний), затем для каждой записи запускаем их через grep
, поэтому мы печатаем только файлы, содержащие шаблон.
Ответ 2
Я знаю, что это старый вопрос, но подумал о том, чтобы добавить мое предложение для тех, кто ищет то же самое.
for i in $(ls -rt *.txt); do grep <pattern> $i; done