2012-10-18 48 views
0

我正在使用awk將服務器登錄名置於新文件中。我只需要前10位用戶的字段1,5,6。這是我發佈的awk命令,但是我獲得了放置在我創建的新文件中的所有人的整個服務器登錄統計信息。注意名稱爲「標記」爲例的人的姓氏我要檢查:使用awk將登錄統計信息打印到文件

awk -F: '(NR > 1 && NR < 11) {print $1, $5, $6}' last mark > name_list 
+0

什麼是「最後」?如果你能提供一個樣本文件,它會對我們有幫助。 – Guru

+0

最後一個命令只是回顯出一個特定用戶登錄到服務器的列表。我只想捕獲最後10個登錄字段1,5和6,並將其打印到一個文件中。只有FYI標記就是示例人員的姓氏。 – demet8

+0

正如所寫,這是告訴'awk'嘗試讀取兩個文件,一個名爲'last'和另一個名爲'mark'。我很確定這不是你想要的。 – danfuzz

回答

2

試試這個(我希望我理解您的需求&您last命令的輸出和我一樣):

last | awk 'NR<=10{print $1, $5, $6}' > name_list 

如果你想創建任何用戶一個新的文件:在命令

last | awk 'NR<=10{print $1, $5, $6 > $1".txt"}' 
+0

就是這樣。謝謝。 – demet8

+0

太棒了!我已經使用這種格式,甚至修改它爲我的文件做其他事情。不夠感謝你。乾杯。 – demet8

+1

執行此操作的更常見方法是awk'{do stuff} NR == 10 {exit}',因此,在獲得所有您想要的輸出後,您不會繼續解析輸入。儘管如此,對於小文件不會有明顯的區別。 –