検索パターンに一致する値に対して操作中にファイルを内部で編集するにはどうすればよいですか?

検索パターンに一致する値に対して操作中にファイルを内部で編集するにはどうすればよいですか?

任意のテキストとISO形式の多数の日付/時刻(例:「2012-07-02T10:47:24+02:00」)を含むリストファイルがある場合は、これらのすべての日付/時刻を見つけてそれぞれに2を追加します。するにはどうすればよいですか?理想的には、1日が24時間であるという事実を考慮した解決策が良いでしょう(例えば、「02T23:15 + 2」は「02T25:15」ではなく「03T01:15」になるはずです)。しかし、私の場合はあまりありません。可能な時間帯の結果を無視し、これを簡単な数学演算として考えましょう。

たとえば、私はすでにPythonでこれを行う方法を知っています。すべてのファイルを1行ずつ読み、日付/時刻が見つかったら行を置き換える方法です。しかし、awkまたはsedを使用してこれを行うより直接的な方法があるかどうか疑問に思います。 ?

ありがとうございます!

ベストアンサー1

これは仕事に近いですperl

perl -MTime::Piece -pi -e 's/\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d/
(Time::Piece->strptime($&,"%Y-%m-%dT%T")+2*3600)->datetime/ge' file1 file2...

おすすめ記事