2017-10-10 14 views

答えて

1

これは、3つのコマンドに分割され

grep input_filename -e "End Time:" | sed -E 's/End Time:\[\w{3}\s(\w{3})\s([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\s([0-9]{4}).*$/\1-\2-\6 \3:\4:\5/' | sed 's/jan/01/ig; s/feb/02/ig; s/mar/03/ig; s/apr/04/ig; s/may/05/ig; s/jun/06/ig; s/jul/07/ig; s/aug/08/ig; s/sep/09/ig; s/oct/10/ig; s/nov/11/ig; s/dec/12/ig' > output_filename 

ような何か。最初はgrepで、必要な時にラインを抽出します。 2番目はsedで、日付を出力形式に並べ替えることができますが、その月はまだ文字列です。 3番目のコマンドは別のsedコールで、これは月の名前を数字に置き換えます。

警告は:

  • 上記の正規表現はかなり厳格であり、
  • 2つのsed呼び出しに正規表現のものを分割する必要はありませんが、これは
  • またはのための1で扱うことができ、簡単な偏差に失敗しますそれで問題は、全体のプロセスは、より洗練されたPython、perlなどで処理することができます
+0

ありがとう@BurnsBA。これを一度チェックしてみましょう。 – user3901666

関連する問題