다음과 같은 파일이 나열된 디렉토리가 있습니다.
abc201303130110.txt
abc201303140511.txt
abc201303150112.txt
보시다시피 파일 이름에는 날짜 타임스탬프가 포함되어 있습니다. 201303140000
파일 이름에 해당 값 이상이 있는 모든 파일을 반환하고 싶습니다 .
grep을 사용하여 파일 이름의 날짜/시간 부분을 가져올 수 있지만 X > 201303140000
.
답변1
awk
GNU 라면 awk
간단히 다음을 사용할 수 있습니다:
find . -type f | awk '{ match($0, /2013[0-9]+/,arr)} arr[0] >= 201303140000 '
답변2
Perl이 구출하러 옵니다! Perl의 -n
스위치는 다소 유사하게 작동하며 sed -n
Perl은 일치 및 산술 측면에서 더 강력합니다.
dennis@lightning:/tmp/foo$ ls -1
abc201303130110.txt
abc201303140511.txt
abc201303150112.txt
dennis@lightning:/tmp/foo$ ls | perl -ne '$d=$_; $d =~ s/.*?(\d+).*/\1/s; print if $d >= 201303140000'
abc201303140511.txt
abc201303150112.txt
답변3
그리고 zsh
:
print -rl abc<201303140000->.txt