예를 들어 나는 다음과 같이 입력합니다.
ls -altr | grep "23 Dec"
따라서 12월 23일의 파일만 표시되며 다음과 같이 grep을 사용하고 싶습니다.
ls -altr | grep "23 Dec" | xargs grep -l "some_string"
하지만 이것은 작동하지 않습니다)
어떻게 하나요?
답변1
원하는 방식으로 사용하려면 다음을 시도해 보세요.
ls -altr | grep "23 Dec" | awk '{print $9}' | xargs -i grep -l "some_string" {}
아니면 find
이렇게 할 것입니다:
find . -type f -newermt 2012-12-23 ! -newermt 2012-12-24 -exec grep -l "some_string" {} \;
find 명령에서 세미콜론을 피하는 것을 잊지 마십시오. 또한 find는 xargs
-exec 옵션과 함께 사용할 때와 거의 동일한 방식으로 작동합니다.
답변2
특정 날짜에 수정된 특정 파일을 찾으려는 경우,
파이프가 필요하지 않습니다. (ls는 기본적으로 수정 시간을 사용합니다.)
find . -type f -newermt 2012-12-23 ! -newermt 2012-12-24 -iname '*some_string*'