0

输入文件

GMDCOM.27936 [Tue Oct  1 13:32:40 2013]: Process Request <36812974>
GMDCOM.27936 [Tue Oct  1 13:37:38 2013]: Process Request <36812985>
GMDCOM.27936 [Tue Oct  1 13:37:53 2013]: Process Request <36812986>
GMDCOM.27936 [Tue Oct  1 13:37:54 2013]: Process Request <36812987>
GMDCOM.27936 [Tue Oct  1 13:37:57 2013]: Process Request <36812996>

我想要以下格式的输出。

36812974 [Tue Oct  1 13:32:40 2013]
36812985 [Tue Oct  1 13:37:38 2013]
36812986 [Tue Oct  1 13:37:53 2013]

就这样一直持续到文件结束。它将如何以上述格式显示所有记录。请帮忙。

4

2 回答 2

3

使用sed你可以说:

sed -r 's/.*(\[.*\]).*<(.*)>/\2 \1/g' filename

对于您的输入,它会返回:

36812974 [Tue Oct  1 13:32:40 2013]
36812985 [Tue Oct  1 13:37:38 2013]
36812986 [Tue Oct  1 13:37:53 2013]
36812987 [Tue Oct  1 13:37:54 2013]
36812996 [Tue Oct  1 13:37:57 2013]
于 2013-10-30T08:18:41.117 回答
0

Based on the data you gave above Here's a one liner or can be put in a script "bash" input.data= Your Filename or process that you can pipe the output

cat input.data|cut -f2 -d "["| awk -F"<" '{print $2, "["$1}'|tr -d '>'|cut -f1-3 -d ":"

于 2013-10-31T17:04:18.333 回答