複数のファイルの「月の日付時刻」形式の日付を「月の日付時刻」形式の日付に置き換える


0

以下のようなフォーマットの日付を含むいくつかのファイルがディレクトリにあります。

December 29 19:05:58

しかし、それらはファイルが作成された日付を参照して異なります。

これらのファイルを検索置換して日付を次のようなものに置き換える方法はありますか。

December 29 2010 19:05:58

私はMac OS Xを使っています。

編集:明確にするために、任意のスクリプティング、すなわち: sed またはシェル/ルビスクリプト。

回答:


1

私はそれが強力なテキストエディタまたは何らかのスクリプトなしで可能であるとは思わない。


TextMateで次の正規表現を使用してください。

サーチ:

(January|February|March|April|May|June|July|August|September|October|November|December) (\d{1,2}) (\d{2}:\d{2}:\d{2})

と置換する:

$1 $2 2010 $2

ファイルの数に応じて、スクリプトは速くなります。あまり作業が足りない場合は、TextMateのようなエディタを選択します。このようにして、保存する前に各置換をチェックします。


完全を期すために:

cat src.txt | sed "s/\([A-Z][a-z]\{1,\} [0-9]\{1,2\}\) \([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)/\1 2010 \2/g" > dest.txt

使う人 sed 定期的に笑うかもしれない、私は気にしない。


スクリプトは問題ありません。 sed 作業?
Wuffers

@マーク私はじゃない sed ユーザー - 数分待つかもしれません;)
Daniel Beck

@DanielBeck:私はこの目的のためにTextMateの試用版を試してみると思います、私はあなたにそれがどのようになるのかを知らせます。
Wuffers

あなたが使用することができます \+ の代わりに \{1,\}
Dennis Williamson

1

これを試してください(OS Xの場合は、 -r-E ):

sed -r 's/(January|February|March|April|May|June|July|August|September|October|November|December)( [0-9 ][0-9] )(([0-9][0-9]:){2}[0-9][0-9])/\1\22010 \3/'

これらすべての括弧をエスケープする必要はないでしょうか。
Daniel Beck

@ダニエル:ないで -r または -E
Dennis Williamson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.