grep 추출 번호 범위

grep 추출 번호 범위

데이트를 찾고 있는데 2019-09-XX어떻게 2019-10-XX든 내 grep이 도움이 되지 않습니다. 여기서 뭔가를 놓치고 있는 것 같아요.

  Last Password Change: 2019-10-30
  Last Password Change: 2017-02-07
  Last Password Change: 2019-10-29
  Last Password Change: 2019-11-03
  Last Password Change: 2019-10-31
  Last Password Change: 2018-09-27
  Last Password Change: 2018-09-27
  Last Password Change: 2019-06-27

다음을 수행하고 있지만 작동하지 않습니다

grep "2019\-[09,10]\-" file 또한 시도grep "2019\-{09,10}\-" file

답변1

"교체" 정규식 태그가 |"이것 아니면 저것"을 의미하도록 하려고 합니다.

grep -E '2019-(09|10)-' file

바라보다내 정규 표현식이 X에서는 작동하지만 Y에서는 작동하지 않는 이유는 무엇입니까?정규식 태그 및 정규식 클래스(기본, 확장 등)에 대한 배경 지식입니다.

답변2

grep숫자를 잘 다루지 못하고, 산술 비교를 하는 방법을 모릅니다. 이렇게 하려면 awk나 Perl과 같은 것을 사용할 수 있습니다. 09합계를 나열하는 것이 쉽기 때문에 여기서는 별로 중요하지 않지만 10범위가 97에서 123 사이인 경우에는 더욱 악화됩니다.

예를 들어, 연도, 월, 일을 숫자로 선택하고 날짜가 27에서 31 사이인 행을 인쇄합니다.

perl -ne 'print if /Last Password Change: ([0-9]+)-([0-9]+)-([0-9]+)/ && $3 >= 27 && $3 <= 31' < file

정규식은 대부분 grep ERE와 유사하며 괄호는 해당 부분을 변수 등 으로 캡처합니다 $1.$2$3

답변3

대안을 추가하면 됩니다.

grep -e "2019-10-.." -e "2019-09-.." file

관련 정보