GMT オフセットを含むタイムスタンプ フィールドを持つレコードを含むファイルがあります。sed
コマンドを使用して、レコードの値を通常のタイムスタンプ (GMT オフセットなし) に置き換えたいと考えています。
例えば:
`$date -d '2012/11/01 00:50:22 -0800' '+%Y-%m-%d %H:%M:%S'`
私がやろうとしているこの値を返します:
2012-11-01 01:50:22
このファイルのすべての行でその操作を実行し、日付コマンドをタイムスタンプ値に適用することを除いて。サンプル レコードは次のとおりです。
"SB","6GV96644X48128125","","","","T0006",2012/10/03 13:08:43 -0700,"NJ"
これが私のコードです:
head -1 myfile | sed 's/,[0-9: /\-]\{25\},/,'"`date -d \1 '+%Y-%m-%d %H:%M:%S'`"',/
これは機能しません: \1 を無視し、一致したパターンを今日の日付に置き換えます:
"SB","6GV96644X48128125","","","","T0006",2012-11-14 01:00:00,"NJ"
一致したパターンが日付関数に渡され、通常のタイムスタンプ値が返されることを願ってい\1
ました (日付関数が GMT オフセットを適用し、通常の stimestamp 文字列を返す方法を示す上記の例のように) 古い記録上の価値。