데이트를 찾고 있는데 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