输入文件
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]
它继续这样直到文件结束。它将如何以上述格式显示所有记录。请帮忙。
答案 0 :(得分: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]
答案 1 :(得分:0)
根据您上面提供的数据 这是一个单行或可以放在脚本“bash”input.data =你的文件名或 您可以管道输出的过程
cat input.data | cut -f2 -d“[”| awk -F“&lt;” '{print $ 2,'[“$ 1}'| tr -d'&gt;'| cut -f1-3 -d”:“