日付を取得するために正規表現が機能しません。

日付を取得するために正規表現が機能しません。

私のファイル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では、これは081つ以上のシーケンスで構成されるパターンを定義します。たとえば、08または0808080808080808080808

おすすめ記事