我有一個文件(通常會這樣做)與日期* nix時間爲從紀元秒,其次是一個消息,最後一個「線程」字段,我想選擇。所有用'|'隔開如從源碼DB導出...Sed打印與評估日期命令在回參考
例如
1306003700|SENT|21
1277237887|SENT|119
1274345263|SENT|115
1261168663|RECV|21
1306832459|SENT|80
1306835346|RECV|80
基本上,我可以用sed容易夠選擇並匹配「線程」字段,打印線,並打印與消息的各個時間,從而:
> cat file | sed -n "s/^\([0-9]*\)\|\(.*\)\|80$/\1 : \2/p"
1306832459 : SENT
1306835346 : RECV
但我真正想要做的是還通過UNIX date命令打發時間字段,所以:
> cat file | sed -n "s/^\([0-9]*\)\|\(.*\)\|80$/`date -r \1` : \2/p"
但是這似乎並不奏效 - 儘管它好像接受它。它只是打印出相同的(Epoch開始日期)日期:
Thu 1 Jan 1970 01:00:01 BST : SENT
Thu 1 Jan 1970 01:00:01 BST : RECV
如何評估/內插反向參考\ 1到日期命令?
也許sed的不匹配這些線(在一氣呵成格式化輸出)的方式......
正如它所說的那樣工作。不是很緊湊 - 但很好的perl。 – timlukins 2011-06-01 07:59:46