我有一個具有以下重複模式的檔案:
date
line 1
line 2
...
line x
例子:
10/30/2016 12:10:00
xxx 123
yyy 456
zzz 789
10/30/2016 12:20:00
xxx 234
yyy 567
zzz 890
如何為每一行新增對應日期的時間戳,即:
10/30/2016 12:10:00
10/30/2016 12:10:00 xxx 123
10/30/2016 12:10:00 yyy 456
10/30/2016 12:10:00 zzz 789
10/30/2016 12:20:00
10/30/2016 12:20:00 xxx 234
10/30/2016 12:20:00 yyy 567
10/30/2016 12:20:00 zzz 890
我認為 AWK 應該可以,但我對此不太有經驗。先致謝!
答案1
一種可能性是這樣做:
awk '/^[[:digit:]/]+[[:space:]]+[[:digit:]:]+/ {d=$1 " " $2; print; next; } /[^[:space:]]/ { print d " " $0 }'
它將匹配任何數字序列,/
後面跟著一些空格,然後是一系列數字和:
s,這應該與我們的日期匹配。如果找到一個,我們將前兩個欄位保存在變數 中,d
然後列印此行並繼續。然後,每當我們發現一行至少有一個非空格字元時(因為您似乎在範例中刪除了空白行),我們就會在d
目前行中列印目前值。