2015-01-27 42 views
1

我嘗試使用awk,例如我可以在第8列找到最大的數字。現在我需要找到列中最大的20個。我使用很多變量嗎?這是我知道如何使用:在linux文件中,如何打印列中最大的20個數字?

$ awk '$8>max{max=$8}END{print max}' my_file.txt 

我是新來的Linux,我發現很難找到答案,這樣的手冊中的問題,所以我希望你們能幫幫我!謝謝! :)

哦,還有一件事:我需要改變裏面所有包含「18」的文件的權限。我試圖用這樣的事情。因爲我想的東西它不工作(我甚至不知道是否有可能把它寫這樣的):

grep -r 18 | chmod -R 775 

再次感謝您的幫助!

+0

'awk'$ 8> max {max = $ 8} END {print max}''需要'awk'(max ==「」)|| ($ 8> max){max = $ 8} END {print max + 0}''來處理文件中所有值小於零或文件爲空的雨天情況。 –

回答

5

你試過簡單sort -nrk8 my_file.txt | head -20
n標誌使它成爲數字排序,r反轉它(最大的第一個),k8選擇第8列。

+0

是的,我試過了,它的工作原理!謝謝! :) – Yarmiz

5

像這樣:

sort -k 8 -n -r my_file.txt | head -20 

即,排序使用場8作爲密鑰(-k代表 「鍵」),使用數值排序(-n),以相反的順序(-r),即,從最大的數字開始。最後,用head取前20行。

+0

哇,這是完美的!我需要練習如何使用簡單的命令,比如用管道排序和一切。它有助於很多謝謝你的先生:) 另外,你認爲你可以幫我改變我的目錄中包含「18」的所有文件的權限嗎?由於我對所有這些問題都很陌生,所以我在解讀權限方面遇到了很多麻煩。 – Yarmiz

相關問題