高效率刪除文字檔案的最後一行

2021-08-30 14:35:34 字數 1344 閱讀 6022

測試用的文字檔案800m

1.用sed解決,此法最易想,但也是最笨的乙個,

解決方法來自問題的提出者:

sed -e '$d' input.file > output.file

用time測試了一下,效率是相當的低!

real    2m51.099s

user    2m1.268s

sys    0m4.260s

2.用head解決,此法比sed有乙個質的的提公升,提公升來自增大了快取,不過依然沒有抓住問題的本質,還是做了不少無用功!解決方法來時cu上的熱心網友。

head -n-1 input.file > output.file

real    0m23.687s

user    0m0.212s

sys    0m4.668s

3.用vim解決,此法很別處心裁,這應該是遇到這個問題的最先想到的一種。解決方法來自我加的unix like群裡的乙個叫石仔的管理員!

vim + result

dd這個沒測試,感覺效率和head法差不多,載入太慢!

4.重量級要到場了,感謝cu版主的這個指令碼,只能用四個字形容!五體投地!

:|dd of=input.file seek=1 bs=$(($(find input.file -printf "%s")-$(tail -1 input.file|wc -c)))

或者是:|dd of=input.file seek=1 bs=$(($(stat -c%s input.file)-$(tail -1 input.file|wc -c)))

測試了一下!

real    0m0.123s

user    0m0.004s

sys    0m0.012s

5.感覺這個用c寫效率最高,但顯然,**也是最長的,我實現了**,

測試了一下,

real    0m0.002s

user    0m0.000s

sys    0m0.000s

**如下:

#

include

#include

#include

#include

#include

#define guess_line_size 80

int get_line_size(

char

*ptr)

;int

main(

int argc,

char

*argv)

intget_line_size(

char

*ptr)

return line_len;

}

java快速讀取文字檔案最後一行資料內容

public static void main string args throws exception public static string readlastline file file,string charset throws ioexception randomaccessfile ra...

python 獲取 txt文字檔案的每一行

如題,獲取.txt文字檔案的每一行,這在對txt檔案進行操作的基本方式,其餘操作都基於此操作之後,記錄收藏 author lingjun e mail 1763469890 qq.com import xlwt 寫入檔案 import xlrd 開啟excel檔案 fopen open d spyd...

c 移除文字檔案裡的某一行

參考自 定義乙個變數用來存讀到的東西 string text 用乙個讀出流去讀裡面的資料 using streamreader reader new streamreader c db.txt encoding.getencoding gb2312 else 一行一行讀 line reader.re...