100일보다 긴 가동 시간을 파일에서 검색할 수 있는 방법이 있습니까?

100일보다 긴 가동 시간을 파일에서 검색할 수 있는 방법이 있습니까?

Linux Bash 명령을 통해 파일에서 100일보다 긴 가동 시간을 검색할 수 있는 방법이 있습니까?

예를 들어 다음이 file1포함됩니다.

Uptime is 172 days

Uptime is 562 days

Uptime is 30 days

downtime is 197 days

다음과 같은 출력을 얻으려면 어떤 명령을 사용할 수 있습니까?

Uptime is 172 days

Uptime is 562 days

답변1

간단한 awk해결책은 다음과 같습니다.

awk '$1 == "Uptime" && $3 > 100 {print}' file1
Uptime is 172 days
Uptime is 562 days

답변2

...좀 더 복잡한 bash솔루션은 다음과 같습니다.

while read -r a b c d; do
   [[ $a = Uptime && $c -gt 100 ]] && printf '%s %s %s %s\n' $a $b $c $d
done < uptime
Uptime is 172 days
Uptime is 562 days

답변3

그리고 grep확장 정규식을 사용하는 솔루션은 다음과 같습니다.

grep -E 'Uptime is [[:digit:]]{3}' uptime | \
  grep -Ev 'Uptime is 100'

이렇게 하면 "가동 시간은 " 문자열이고 그 뒤에 최소 3자리 숫자가 오고 정확한 숫자 100와 줄 끝이 옵니다.

답변4

내 댓글에서 변환 중입니다.

grep와 함께 사용 awk:

grep "Uptime" file1 | awk '$3 > 100 {print}'

"가동 시간"을 찾은 file1다음 세 번째 열을 살펴보고 100보다 큰 경우 인쇄합니다.

관련 정보