Подтвердить что ты не робот

Как отсортировать выход "grep -l" в хронологическом порядке по последней дате последней модификации?

Я использую флаг -l с grep, чтобы просто распечатать соответствующие имена файлов.

Я хочу затем перечислить результаты (файлы) в порядке возрастания, т.е. самые последние последние.

Очевидно,

grep -l <pattern> *.txt | ls -rt

не то, что мне нужно, так как ls -lrt просто выводит все файлы.

4b9b3361

Ответ 1

Try:

ls -rt *.txt | xargs grep -l <pattern>

Сначала мы используем ls для перечисления файлов *.txt и сортируем их по времени модификации (новейший последний), затем для каждой записи запускаем их через grep, поэтому мы печатаем только файлы, содержащие шаблон.

Ответ 2

Я знаю, что это старый вопрос, но подумал о том, чтобы добавить мое предложение для тех, кто ищет то же самое.

for i in $(ls -rt *.txt); do grep <pattern> $i; done