我有一個巨大的文本文件(100GB),需要在Linux上編輯一行。 顯然,這不能用普通的文本編輯器來完成。 有沒有辦法做到這一點?基本上跳到第n行,然後編輯它,然後保存。如何編輯一個巨大的文本文件內聯
-1
A
回答
1
您可以使用'sed'流編輯器來編輯任意大小的文件,因爲它不需要一次加載整個文件。例如:
sed '54 s/[0-9][0-9]*/gone/' <file_in.txt> file_out.txt
將會替換第54行上的單詞'gone'。
它還支持使用'-i'選項編輯文件,但我從未在百兆文件上嘗試過。沒有理由它不應該工作。
+0
'-i'選項將sed創建一個tmp文件,然後完成後,將該tmp文件重命名爲原始文件名。沒有std unix文本工具可以修改文件,它總是會創建第二個副本,所以OP將需要爲該tmp文件額外的100GB空間。祝你們好運。 – shellter
1
如果您知道要編輯的位置的確切字節偏移量,並且版本不會更改該行的長度,那麼您可以將fseek()
添加到行中,讀取行中的內容,將其更改並寫出。
0
假設有6000行'example.txt',並且您想要將第3001行更改爲'hello world'。
head -n 3000 example.txt > tmp.txt
echo 'hello world' >> tmp.txt
tail -n 2999 example.txt >> tmp.txt
mv tmp.txt example.txt
相關問題
- 1. 用C++編輯一個巨大文件的第一行
- 2. 巨大的JSON文件的最佳文本編輯器?
- 3. 打開並編輯巨大文件
- 4. 如何加快處理一個巨大的文本文件?
- 5. 在JqxGrid內聯編輯如何將文本更改爲大寫
- 6. 如何編寫巨大的PDF文件
- 7. 如何編輯linux shell中巨大的txt文件的頭部?
- 8. Python:如何將巨大的文本文件讀入內存
- 9. 如何使用POI讀取和編輯巨大的Excel文件?
- 10. 如何編寫一個潛在的巨大InputStream文件?
- 11. 如何從一個巨大的文本文件中讀取文本塊?
- 12. SVG中的內聯文本編輯
- 13. 編輯一個巨大文件的第一行和最後一行
- 14. 編輯大量的文本文件
- 15. raphael js內聯文本編輯
- 16. jqGrid環繞文本內聯編輯
- 17. 編輯一個文本文件
- 18. 準備一個巨大的文本文件的相關矩陣
- 19. 如何編輯一個文本文件,而不用一次
- 20. 查看巨型日誌文件的文本編輯器
- 21. 在Python中讀取一個巨大的文本文件
- 22. 在網站上顯示一個巨大的文本文件
- 23. 使用AJAX和一個巨大的文本文件
- 24. 加載一個巨大的文本文件
- 25. 搜索巨大的文本文件
- 26. 閱讀巨大的文本文件Java
- 27. PHP從巨大的文本文件
- 28. 選擇從巨大的文本文件
- 29. 如何編輯巨大的SQL轉儲?
- 30. 轉換一個巨大的txt文件
有關您想編輯的內容,模式等的更多信息...會更好。 'sed'是編輯特定行的一個選項。 – iamauser
據我的理解,打開文件是不可能的,因爲在打開文件之前文件如何存儲在磁盤上是未知的。 – gongzhitaao
您可以「分割」文件,編輯相關的塊,然後使用「cat」重新構建大文件。 –