마지막 수정 시간 순서대로 재귀적으로 grep하는 방법은 무엇입니까?

마지막 수정 시간 순서대로 재귀적으로 grep하는 방법은 무엇입니까?

grep -r 특정 디렉터리의 모든 파일에 대해 재귀 검색을 수행합니다. 하지만 grep이 마지막 수정 시간 순서대로 이러한 파일을 읽도록 하려면 어떻게 해야 합니까?

답변1

그리고 zsh:

grep -- foo **/*(D.om)

GNU 도구 사용:

find . -type f -printf '%T@\t%p\0' |
  tr '\n\0' '\0\n' |
  sort -rg |
  cut -f2- |
  tr '\n\0' '\0\n' |
  xargs -r0 grep foo

답변2

비슷한 것이 없다면 zsh전혀 사소한 일이 아닙니다 . 적중 수를 가져온 다음 각 파일 적중의 수정 시간을 기준으로 정렬하는 것이 더 효율적일 수 있습니다.

grep -rl 'regex' . |
while read -r file; do
    stat -c '%Y:%n' "$file"
done | sort | cut -d: -f2-

파일 이름에 줄 바꿈이나 다른 내용이 있으면 분명히 깨질 것입니다.

관련 정보