如何顯示最後幾行行號? - Linux

Table of Contents

Update:
算行數時用parallel看起來比較有效.

$ ls -lah H
... 7.7G ... H

$ time cat H | parallel --pipe wc -l | awk '{s+=$1} END {print s}'
167559168

real 2m57.751s
user 0m10.844s
sys 0m24.636s

$ time wc -l H
167559168 H

real 3m1.436s
user 0m6.176s
sys 0m8.756s

樣本是重覆複製gutenberg的書本內容.

參考: http://www.rankfocus.com/use-cpu-cores-linux-commands/
=============================

也許考慮先用sed算行數
再用sed取後面N行

測試樣本

$ ls -alh A
... 4.2G ... A

$ time wc -l A
90761216 A

real 1m26.886s
user 0m4.000s
sys 0m5.752s

$ time sed -n '$=' A
90761216

real 0m11.648s
user 0m10.676s
sys 0m0.844s

$ time sed -n 90760000,90761216p A

real 0m10.379s
user 0m9.468s
sys 0m0.920s


※ 引述《j222 (熱~)》之銘言:
: 想請問各位,
: 在 shell 指令裡面我知道可以用 tail 來顯示檔案的最後幾行,
: 也可以用 wc 來查詢檔案總共有幾行,
: 可是要是今天我有一個檔案是有數百萬行, 而我又想知道這個檔案到底有幾行時,
: 用 wc 查詢就要等很久才能知道結果,
: 而用 tail 的話可以很快就顯示最後幾行的內容, 可是卻不知道行號
: 用 cat -n | tail 也一樣會等很久
: 請問有沒有甚麼方法可以很快的查詢一個大檔案的行數, 同時又可以顯示最後幾行
: 的內容呢?
: 謝謝各位喔!

--

All Comments

Heather avatarHeather2014-09-02
感謝你!! 可以再請問你的範例中 '$=' 代表的意思是甚麼呢?
Ursula avatarUrsula2014-09-04
sed比較快看起來是因為cache.
Ethan avatarEthan2014-09-09
= Print the current line num $ Match the last line
Joe avatarJoe2014-09-12
真的快很多! 謝謝 n大 , 謝謝各位的意見喔!
Belly avatarBelly2014-09-17
這篇寫了很多Linux指令,值得推薦 建議M起來