フォームの日付に一致する正規表現01/Jan/2000:23:59:59
です。次の正規表現を使用して、Notepad ++の正規表現インタープリターを使用してパターンを一致させることができました。
[1-3][0-9]/[A-Z][a-z]{2}/(19|20)[0-9]{2}:[0-9]{2}:[0-5][0-9]:[0-5][0-9]
残念ながら、これは bash で行う必要があります。AWK は今のところオプションではありません。そこで、上記の正規表現を bash が同じように解釈できるものに変換しようとしました。これまでのところ、私はこれを思いつきました:
[1-3][0-9]/[A-Z][a-z]\{2\}/(19|20)[0-9]\{2\}:[0-2][0-9]:[0-5][0-9]:[0-5][0-9]
私が使用している完全なコマンドは
expr "$line" : '\([1-3][0-9]/[A-Z][a-z]\{2\}/(19|20)[0-9]\{2\}:[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\)'
where$line
には、日付を抽出する必要がある文字列が含まれています。残念ながら、正規表現の私の bash バージョンは機能しません。エスケープ/
や など、さまざまなことを試し:
ましたが、うまくいかないようです。私は何を間違っていますか?