2017-04-21 105 views
1

獲取的數據創建腳本我有一個名爲stat.txt文本文件,其中包含格式從一個文本文件

<User Name>-<IP>-<File Name>-<Size>每個線。每行包含用戶名,IP地址,文件名和下載文件大小。我需要創建一個腳本userstat.awk,它允許在寫入特定命令時獲得以下數據:

userstat。 AWKü - 將會列出所有文件中的所有文件

到目前爲止,我已經嘗試列出所有用戶使用默認的命令文件 userstat.awk總 - 將會名單總規模,但使用這些我做不到命令。

+0

你能給我們一個樣本輸入文件和你的預期輸出嗎?那樣就好了。 – JFS31

+0

乍一看,它看起來很簡單,因爲您可以在awk中更改列分隔符。在這種情況下,可以使用'awk -F-'。但是如果''或''包含一個' - ',這將失敗。如果'<' and '>'是模式的物理部分,我將使用正則表達式來分隔字段。請提供示例輸入和預期的輸出,如已經建議的... – Scheff

+0

也許你可以添加一些示例數據。如果可能,發佈您的代碼。 – luoluo

回答

2

鑑於stat.txt:

user-1.1.1.1-file.jpg-20 
root-1.1.1.1-file.jpg-20 
user-1.1.1.1-img.jpg-20 
root-1.1.1.1-thing.jpg-20 

你可以使用命令(由@ClasesWikner提高)

awk -F- '{print $3; s+=$4}END {print "total: " s}' stat.txt 

爲了輸出:

file.jpg 
file.jpg 
img.jpg 
thing.jpg 
total: 80 

正如提到的@Scheff在用戶名或文件名包含時不起作用。

+0

但爲什麼不一次打印呢? awk -F-'{print $ 3; s + = $ 4} END {print「total:」s}'stat.txt –

+0

@ClaesWikner你是對的,那就更好了! –

相關問題