[20120216-17:58:22][NOTE][20120216-17:58:22]
[NOTE]INFO[20120216-17:58:22]
[20120216-17:58:22][NOTE][20120216-17:58:22]i[20120216-17:58:22]n[20120216-17:58:23]f[20120216-17:58:24]o[20120216-17:58:25]
[20120216-17:58:26] information a
[20120216-17:58:26] information b
[20120216-17:58:27] information c
information d
information e
[20120216-17:58:27] information f
要求输出如下,若当前行包含字符串"[NOTE]",则只保留最后一个时间戳,其余时间戳删除。若当前行不包含字符串"[NOTE]",则全部时间戳删除。
[NOTE][20120216-17:58:22]
[NOTE]INFO[20120216-17:58:22]
[NOTE]info[20120216-17:58:25]
information a
information b
information c
information d
information e
information f
$ awk -F'[][]' '{t="";if(/NOTE/)t="["$(NF-1)"]";gsub(/\[[0-9:-]*\] */,"");print $0""t}' note.txt
[NOTE][20120216-17:58:22]
[NOTE]INFO[20120216-17:58:22]
[NOTE]info[20120216-17:58:25]
information a
information b
information c
information d
information e
information f 作者: jiejie455 时间: 2012-02-17 09:58
sed -r '/[NOTE]/{s/(\[[0-9\:\-]*\])([^$])/\2/g;p;d};s/\[[0-9\:\-]*\][ ]?//g' data作者: blackold 时间: 2012-02-17 10:20
sed '/\[NOTE\]/!{s/\[[0-9 :-]*\]//g};:n;s/\[[0-9 :-]*\]\(.*\[[0-9 :-]*\]\)/\1/;tn' urfile