我最近一直在阅读关于tail命令的很多内容,我不能说我找到了解决问题的方法。我有一个名为log.txt的文本文件,它包含3行:
vm2014-09经典转发:Mla-site 12828034:3021:1298320 0000001110000000000 11/25/2013 2:24
vm2014-10申请转发:Spc-site 238567034:3021:1298320 0000001110000000000 11/25/2013 3:54
vm2014-11 Classic Forwarded:Mla-site 12828034:3021:1298320 0000001110000000000 11/25/2013 4:49
我想得到最后一部分 现在我有了这段代码
tail -c 17 log.txt
它显然会返回 11/25/2013 4:49 ,这是文件的最后一行。我想知道如何让它归还:
2013/11/25 2:24
2013年11月25日3:54
2013年11月25日4:49
谢谢!
答案 0 :(得分:1)
从您的问题中不清楚您的log.txt
文件是否具有固定结构。如果是这样,我就不会使用tail
,而是使用它:
cat log.txt | sed '/^\s*$/d' | awk '{print $(NF-1)" "$NF}'
sed
删除空白行,awk
返回最后两个以空格分隔的字段。我得到了
11/25/2013 2:24
11/25/2013 3:54
11/25/2013 4:49
答案 1 :(得分:0)
您还有cut
:
tail log.txt | cut -d ' ' -f 7,8
字段7和8分别是日期和时间。正如@JayInNyc也建议的那样,这只适用于给定的样本行。具有不同格式的行会产生意外结果。