가질 수 있는 방법이 있나요?ack
검색된 결과를 수정된 날짜별로 정렬하시겠습니까? (결과 옆에 날짜를 표시하는 것이 좋나요?) ack
날짜 옵션은 없는 것 같지만 혹시 모르니까.
도구 조합을 사용하여 이를 수행할 수 없다면 ack
도구 조합을 사용하는 것은 어떻습니까?grep
답변1
파일 수정 날짜에 대한 개념이 ack
없거나 없습니다 . grep
이렇게 하려면 먼저 파일 목록을 생성한 다음 상황에 따라 정렬해야 합니다.
또는를 사용하여 xargs
수정 날짜를 제공하는 다른 명령으로 출력을 실행할 수 있습니다. 수정된 날짜의 경우 이 작업을 수행할 수 있습니다.ack
grep
stat
예
$ grep -Rl awk * | xargs -n 1 stat --printf "%y ------ %n\n"
2013-11-12 10:06:16.000000000 -0500 ------ 100855/tst_ccmds.bash
2013-11-13 00:32:11.000000000 -0500 ------ 100911/cmd.bash
2013-11-23 03:16:17.000000000 -0500 ------ 102298/cmd.bash
2013-12-14 20:06:04.467708173 -0500 ------ 105159/cmd.txt
2013-12-16 03:20:48.166016538 -0500 ------ 105328/cmds.txt
2013-01-14 14:17:39.000000000 -0500 ------ 106932/red5-1.0.1.tar.gz
노트:이 방법은 쿼리와 일치하는 파일의 이름과 수정 날짜만 표시합니다.
답변2
GNU 도구 사용:
grep -H something * | awk -F: '{"date -r \""$1"\" +\"%F %R\"" | getline d; print d,$0}' | sort -n
또는,
ack something | awk -F: '{"date -r \""$1"\" +\"%F %R\"" | getline d; print d,$0}' | sort -n
이는 파일 이름을 일반적인 출력과 분리하는 데 사용되며 awk
파일 날짜를 검색하기 위해 호출됩니다. 명령줄에 파일 이름이 하나만 나타나는 경우에도 파일 이름이 출력에 표시되도록 하는 옵션이 제공됩니다.grep
awk
date
grep
-H
출력 예:
$ grep setupcon /etc/init.d/* | awk -F: '{"date -r \""$1"\" +\"%F %R\"" | getline d; print d,$0}' | sort -n
2011-12-05 12:05 /etc/init.d/keymap.sh:# If setupcon is present, then we've been superseded by console-setup.
2011-12-05 12:05 /etc/init.d/keymap.sh:if type setupcon >/dev/null 2>&1; then
2011-12-08 18:00 /etc/init.d/console-setup: if setupcon --save; then
2011-12-08 18:00 /etc/init.d/console-setup:test -f /bin/setupcon || exit 0
2012-04-28 02:41 /etc/init.d/kbd:if which setupcon >/dev/null
2012-09-30 18:02 /etc/init.d/keyboard-setup: if setupcon -k 2>/dev/null; then
2012-09-30 18:02 /etc/init.d/keyboard-setup:test -f /bin/setupcon || exit 0
awk
명령어 설명
-F:
:
그러면 첫 번째 필드가 파일 이름이 되도록 필드 구분 기호가 설정됩니다 . (파일 이름 자체에 콜론이 포함되지 않기를 바랍니다.)"date -r \""$1"\" +\"%F %R\"" | getline d
date -r filename +"%F %R"
정렬에 적합한 형식으로 파일의 수정 날짜를 가져오려면 이 명령을 실행하십시오 . 날짜는 변수에 저장됩니다d
.print d,$0
그러면 데이터가 인쇄되고 그 뒤에 출력 줄이 인쇄됩니다
grep
.