0
私はUNIXで要件があります。私は以下のようなワークフローの終了時間を持つファイルを持っている:日付を特定の形式に変換し、unix形式のファイルに変換します
End Time:[Thu oct 05:12:12:12 2017]
私はMM-DD-YYYのHH24にこれを変換する必要があります:MI:SSと別のファイルに書き込みます。
どうすればいいですか?
おかげで、 アミット
私はUNIXで要件があります。私は以下のようなワークフローの終了時間を持つファイルを持っている:日付を特定の形式に変換し、unix形式のファイルに変換します
End Time:[Thu oct 05:12:12:12 2017]
私はMM-DD-YYYのHH24にこれを変換する必要があります:MI:SSと別のファイルに書き込みます。
どうすればいいですか?
おかげで、 アミット
これは、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
コールで、これは月の名前を数字に置き換えます。
警告は:
sed
呼び出しに正規表現のものを分割する必要はありませんが、これは
ありがとう@BurnsBA。これを一度チェックしてみましょう。 – user3901666