2014-02-07 60 views
0

最近我一直在閱讀關於tail命令的很多內容,我不能說我找到了解決我的問題的方法。我有一個名爲log.txt的一個文本文件,它包含3行:如何反覆對多行文本文件使用tail命令?

vm2014-09經典轉發:MLA現場 12828034:3021:1298320 0000001110000000000 2013年11月25日2:24

vm2014 -10應用轉發:SPC-站點 238567034:3021:1298320 0000001110000000000 2013年11月25日3:54

vm2014-11經典轉發:MLA現場 12828034:3021:1298320 0000001110000000000 2013年11月25日4: 49

我想要得到的線 的最後一部分,現在我有這樣的代碼

tail -c 17 log.txt 

和它顯然返回2013年11月25日4:49這是文件的最後一行。我想知道如何使它返回此:

2013年11月25日2:24

2013年11月25日3:54

2013年11月25日4:49

謝謝!

回答

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 
+0

無用的貓斑點 – perreal

+0

@perreal沒有建設性。尾巴不能解決問題。如果該文件超過10行,則尾部默認返回最後10行。如果log.txt像日誌文件(可能),tail -f可以工作。所述的sed/awk解決了這個問題,貓只是產生一個文本流。 – JayInNyc

+0

該文件具有固定的結構。謝謝!有用。儘管我沒有使用貓。我使用了sed和awk。非常感謝。 – endlesslearning

0

你也有cut

tail log.txt | cut -d ' ' -f 7,8 

字段7和8分別是日期和時間。正如@JayInNyc也表明,這隻對給定的樣本行有效。具有不同格式的行會產生意想不到的結果

相關問題