在 Linux 上輕鬆讀取大檔案的方法

在 Linux 上輕鬆讀取大檔案的方法
在 Linux 上讀取大檔案功能圖片

需要分析巨大的日誌檔案、文字檔案或資料集?你絕對並不孤單。當您試圖在密切關注系統資源的同時查看或管理內容時,在 Linux 上處理大型檔案可能會令人望而生畏。幸運的是,有多種方法可以在 Linux 上讀取大文件,包括命令less、Vim 等實用程式以及將文件拆分為較小部分的技術。

本文將指導您使用多種工具來了解 Linux 上讀取大檔案或提取特定資訊的不同技術。

使用Less指令

正在尋找一個輕量級工具來顯示大型文字檔案的內容或執行快速搜尋?該less命令是您的首選解決方案。

我最喜歡這個實用程式的方面之一是,與標準文字編輯器不同,它允許您一次一頁地查看文件,而無需將整個文件加載到記憶體中。這使得速度顯著加快,尤其是對於大文件,並簡化了審查大量文件或日誌的過程。

要使用它,只需鍵入less後跟檔案名稱:

此命令將開啟less介面,允許您使用箭頭鍵逐行滾動文檔,或透過按後跟/搜尋字詞來搜尋特定術語。

您也可以less使用管道運算子來讀取其他命令的輸出。例如,要查看並顯示ls命令的輸出,您可以使用:

在終端機視窗中讀取 ls 指令輸出。

less命令還提供多個選項來自訂其功能。您可以結合這些選項來客製化less工作方式以滿足您的需求。

例如,您可以使用-p選項 withless來搜尋特定術語:

在 Linux 上的特定檔案中尋找特定模式。

此命令開啟輸出並直接跳到第一次出現的單字example

您也可以使用以下選項在文件內容旁邊顯示行號-N

less 介面實用程式中的編號輸出指令。

使用 Split 指令分割文件

有時,處理大型檔案的最佳方法是將其分成更小、更易於管理的部分 – 特別是當您想要分段讀取或處理文件時。例如,當檔案大小超過 1 GB 或包含超過 1 億行時,我傾向於拆分檔案。

您可以按大小或行數劃分文件。對於文字文件,通常最好按行拆分它們,以避免將單字或行切成兩半。

例如,若要根據特定行數拆分文件,請執行下列命令:

使用 split 指令將檔案分割成更小的區塊。

在本例中,檔案「samplefile.txt」被分成多個部分,每個部分由 10,000 行組成。產生的檔案將被命名為「part_aa」、「part_ab」等。現在您可以開啟並檢查檔案的較小部分,而不必擔心記憶體使用過多或系統效能緩慢。

如果你想根據大小分割大文件,例如100MB,可以執行以下命令:

使用午夜指揮官

Midnight Commander (MC) 是一個雙面板、基於文字的檔案管理器,提供使用者友好的視覺化介面來導航檔案和目錄。

MC 使您能夠直接在其介面中查看文件,這使您可以快速滾動瀏覽大型日誌或資料集,而無需將整個文檔載入記憶體。我很欣賞 MC 能夠讓您輕鬆有效率地遍歷大文件。

要安裝 MC,只需運行:

mc透過在終端中運行來啟動它。進入後,導航到您想要閱讀的大文件並探索其內容。

在 Midnight Commander 工具上查看大檔案。

使用克洛格

Klogg 是一個基於 GUI 的快速開源日誌檢視器,可以有效地處理大檔案。與將整個檔案載入記憶體的標準編輯器不同,Klogg 僅根據需要讀取檔案的部分內容,從而最大限度地減少了記憶體使用量。

Klogg 還提供即時過濾和搜尋功能,無需大量滾動即可輕鬆找到特定內容。

在安裝 Klogg 之前,您需要建立「/etc/apt/keyrings」目錄並向其中新增 GPG 金鑰。 GPG 金鑰對於驗證 Klogg 軟體包儲存庫至關重要。

若要建立目錄,請執行:

使用以下命令新增 GPG 金鑰:

將 GPG 金鑰新增至 /etc/apt/keyrings 目錄。

接下來,使用 curl 命令將 Klogg 儲存庫新增至您的系統:

使用以下內容更新您的包裹清單:

最後,您可以使用以下命令安裝 Klogg:

在 Ubuntu 上安裝 Klogg。

安裝後,只需透過 Klogg 的介面開啟文件,並利用其內建功能搜尋和瀏覽文件內容。

在 Klogg 上讀取大檔案。

使用文字編輯器讀取大文件

雖然許多文字編輯器都在處理大文件,但 Vim 和 Emacs 等編輯器比 Nano 或 Gedit 等標準編輯器更有效地管理更大的文件。

例如,Vim 的功能可讓您快速瀏覽文件並蒐索術語,而無需立即將整個內容載入記憶體。但是,請注意,搜尋僅限於已載入的文件部分。

若要在 Vim 中開啟文件,請執行:

使用 Grep 指令搜尋文件

如果您要在大文件中查找特定信息,請使用該grep命令。這個強大的工具使您能夠搜尋文件並僅顯示與您的查詢相符的行。

當命令輸出通過管道傳輸到 時less,請記住這只是暫時的 — 一旦退出,輸出就會丟失less。若要保留輸出以供以後查看,請將其重定向到檔案並使用命令列工具(例如 less)將其開啟。

例如,要從大檔案中過濾包含單字“ERROR”的每一行,您可以執行:

透過 grep 指令在指定檔中搜尋。

您可以使用其他選項優化搜索,例如忽略區分大小寫 ( grep -i) 或僅搜索整個單字 ( grep -w)。

將輸出重定向到文件

如果您希望保存特定搜尋結果以供以後查看,您可以將命令的輸出重新導向到新檔案。

例如,使用以下grep命令搜尋行並將其儲存到新文件中:

操作員>每次都會建立一個新文件或覆蓋現有文件。若要將資料附加到已存在的文件,請>>使用>.

使用 Head 和 Tail 指令

在 Linux 上處理大型檔案時,您可能只需要查看檔案的開頭或結尾。這就是headtail命令發揮作用的地方。

若要顯示檔案的前 20 行,請使用:

在 Linux 上顯示大檔案的前二十行。

同樣,要顯示最後 20 行,請執行:

在這兩種情況下,-n 20都指定您只想查看前 20 行或最後 20 行。您可以根據需要調整此數字以顯示更多或更少的行,這兩個命令都預設顯示 10 行。

組合tailhead可以幫助您瀏覽文件的特定部分。若要查看 100 行檔案的第 10-14 行,請從總行數中減去起始行減一來計算從末尾算起的起始行 (100 – 9 = 91)。執行以下命令:

這將顯示第 10-14 行。您可以根據您所看到的內容驗證輸出less

對於持續更新的文件,例如日誌文件,您可以用來tail -f即時監控變化。

結論

無論您是分析日誌、處理資料集還是只是讀取大型文字文件,這些策略都將有助於顯著簡化流程。您還可以探索其他技術來在 Linux 上找到大檔案並透過終端傳輸它們。

圖片來源:Unsplash。所有修改和螢幕截圖均由 Haroon Javed 完成。

來源

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *