
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-
파일 이름에 줄 바꿈이나 다른 내용이 있으면 분명히 깨질 것입니다.