4

変換された .ics ファイルから、次の内容が約 60 回繰り返されるテキスト ファイルがあります。

Start Vak
Tijd van: 20120411T093000Z
Tijd tot: 20120411T100000Z
Klas(sen) en Docent(en): VPOS0A1 VPOS0A2 Mariel Kers
Vak: Ex. Verst. beperk.
Lokaal: 7.05
Einde Vak

「Tijd van」と「Tijd tot」の値を書き直して、適切な日付にします (awk、sed、grep などを使用した gnu/linux システムの bash スクリプトで)。私はそれを見つけるために awk を使用しようとしました:

awk '/^Tijd.*[:digit:][:digit:]Z$/; { getline; print $0; }' rooster2.txt

そしてgrep:

egrep '/^Tijd(.*)[:digit:][:digit:]Z$/' rooster2.txt

しかし、どちらも行さえ見つけられません。

私が望むのは、その日付を EPOCH や 31.04.2012 13:00:00. 行全体を置き換えたり書き直したりしたくありません。特定の文字列だけです。ヒント、例、リンクなど、何でも歓迎され、非常に便利です。

4

3 に答える 3

2

これを試してください(GNU sed):

sed -r 's/(Tijd ...: )(....)(..)(..).(..)(..)(..)./\1 \4.\3.\2 \5:\6:\7/' FILE
于 2012-04-12T15:27:40.797 に答える
0

ルビーのワンライナーとして; time一致する正規表現をTime.parse置き換える必要があります。時間出力をフォーマットするためのstrftimeメソッドを見ることができます。

[slmn@uriel ~]$ ruby -rtime -ne 'puts $_.sub(/(Tijd (van|tot): )(.*)/) { $1 + Time.parse($3).strftime("%D %T") }' < yourfile.txt
Start Vak
Tijd van: 04/11/12 09:30:00
Tijd tot: 04/11/12 10:00:00
Klas(sen) en Docent(en): VPOS0A1 VPOS0A2 Mariel Kers
Vak: Ex. Verst. beperk.
Lokaal: 7.05
Einde Vak
于 2012-04-12T15:43:41.973 に答える