모든 파일의 수정 시간을 한 디렉토리에 확인하고 싶습니다. 파일에 현재 시스템 시간과 다른 시간이 있으면 RED가 인쇄됩니다. 그렇지 않으면 GREEN이 인쇄됩니다.awk의 시간 비교
ls -lrt| grep main | awk '{if ($8 != `date +%R`) print "-->RED"}END{print"-->GREEN"}'
위의 진술을 수정하는 방법을 제안 해주십시오. 백만 감사합니다.
모든 파일의 수정 시간을 한 디렉토리에 확인하고 싶습니다. 파일에 현재 시스템 시간과 다른 시간이 있으면 RED가 인쇄됩니다. 그렇지 않으면 GREEN이 인쇄됩니다.awk의 시간 비교
ls -lrt| grep main | awk '{if ($8 != `date +%R`) print "-->RED"}END{print"-->GREEN"}'
위의 진술을 수정하는 방법을 제안 해주십시오. 백만 감사합니다.
이 만 쉘과 날짜 명령을
#!/bin/bash
current=$(date +%R)
for file in *main*
do
d=$(date +%R -r "$file")
if [ "$d" = "$current" ];then
echo "GREEN: $file, current:$current, d: $d"
else
echo "RED: $file, current: $current, d: $d"
fi
done
그냥 단지 날짜를 비교할 수 있기 때문에 당신이 당신의 자신의 필요에 적응해야합니다 노트, 또는 시간이 그것을 할 수있는 하나의 방법입니다, 그것이 무엇이든, 다양한 날짜 형식의 날짜 맨 페이지를 확인하십시오.
당신이 AWK을 함께하고 싶어, 여기에 순수한 AWK (+ GNU 일) 솔루션
awk 'BEGIN{
cmd="date +%R"
cmd|getline current
close(cmd)
for(i=1;i<=ARGC;i++){
file=ARGV[i]
if(file!=""){
cmd="date +%R -r \047"file"\047"
cmd |getline filetime
close(cmd)
if(filetime==current){
print "GREEN: "file
}else{
print "RED: "file
}
}
}
}
' *
백만 감사드립니다. 나는 다음과 같이 수정할 수있다 : ls -lrt | awk 'BEGIN {cmd = "날짜 + % R"; cmd | getline current; 언급 된 포스터 중 하나로서 –
을 인쇄하십시오.'ls -ltr'을 사용하여 날짜를 구문 분석하지 마십시오. 내 시스템에서 시간과 분은 $ 7입니다. 또한 'ls'는 때로는 별칭을 사용하므로 어디서나 작동하지 않을 수 있습니다. stat/date를 사용하여 타임 스탬프를 얻으십시오. – ghostdog74
Don't parse the output of ls
입니다. stat
으로 원하는 것을 할 수 있습니다.
stat -c%Y file
출력됩니다 1월 1일 이후의 초에있는 파일의 수정 시간, 1970 date +%s
출력됩니다 1월 1일 이후의 초 현재 시간, 그래서 1970
, 당신이 원하는 것은하여 수행 할 수 있습니다 :
if [[ $(stat -c%Y main) -ne $(date +%s) ]]
then
echo "RED"
else
echo "GREEN"
fi
언제든지이 다른 경우에는 파일 목록 위, 출력 RED
을 원하는 경우 :
to_print=GREEN
for f in *main*
do
if [[ $(stat -c%Y "$f") -ne $(date +%s) ]]
then
to_print=RED
break
fi
done
echo $to_print
당신이 떠들썩한 파티를 사용하지 않는 경우, 당신은
`...`
고마워,하지만 주된 키워드는 –
을 의미한다. "주 키워드"란 무엇을 의미합니까? "main"과 일치하는 파일 이름을 찾고 있습니까? –
오 예, 그러면 다음과 같이 수정할 수 있습니다 : ls -lrt | awk 'BEGIN {cmd = "날짜 + % R"; cmd | getline current; close (cmd)} {if $ 8! = 현재 "RED"} END {print "GREEN"} ' 감사합니다. –
와
[[
]]
[
및]
와 쌍과$(...)
을 대체 할 수는 재부 시간에서 그것은 '다른'인가? 확실합니까? 시스템 시간보다 적거나 같지 않은 것은 무엇입니까? 또한, 'main'은 무엇입니까? 기본 이름 만 포함 된 파일을 확인하고 있습니까? – vpram86예, 현재 시스템 시간으로 파일을 검색하고 싶습니다. 내 로그 파일이 매 초마다 업데이트됩니다. –