날짜를 가져오는 데 정규 표현식이 작동하지 않습니다.

날짜를 가져오는 데 정규 표현식이 작동하지 않습니다.

내 파일 Sample1.txt에는 다음 데이터가 포함되어 있습니다.

2017-12-08
2017-12-31
2016-12-31
201707-31
2017-08-31
2017-08 -31
2017-0008-31
2017 08abcd 31
2017 0812-31
2017 -08- 31

2017년에 시작하여 31년에 끝나고 그 사이에 "08"이 있는 날짜를 가져오고 싶습니다. 이 날짜를 얻기 위해 grep에서 다음 정규식을 사용하고 있지만 작동하지 않습니다.

grep -E '^2017(08)+31$' sample1.txt

답변1

2017년부터 시작하여 31로 끝나고 중간에 "08"이 있음

  • 2017년부터——^2017
  • 그렇다면 뭔가가 있을 수도 있고 아무것도 없을 수도 있습니다 -.*
  • 그 다음은 08-08
  • 그렇다면 뭔가가 있을 수도 있고 아무것도 없을 수도 있습니다 -.*
  • 그리고 31로 끝납니다 -31$

모두 함께 넣어

^2017.*08.*31$

나는 당신이 그것을 어디서 얻을 수 있는지 이해하지 못합니다 (08)+. 확장 RE에서 이는 08하나 이상의 시퀀스로 구성된 패턴을 정의합니다. 예를 들어, 08또는 0808심지어 080808080808080808.

관련 정보