解決 Notepad++ 開啟大檔案遇到「file is too big to be opened」錯誤訊息

Notepad++ 是免費的文字編輯器軟體,好用但是開啟大檔案 (例如檔案大小超過 600MB) 會遇到「file is too big to be opened」錯誤訊息。解決方法改用別的編輯器軟體、利用指令顯示部分檔案內容或者切割文字檔。


解決方法1: 直接使用支援大檔案的編輯器軟體

(1) 免費軟體: VIM (gVim Portable)、MadEdit-Mod (Madedit-Mod 0.4.10 免安裝中文版)
(2) 付費軟體: EmEditorUltraEdit 可免費試用 30 天
更多軟體清單可以參考 Comparison of text editors - Wikipedia ,搜尋文字「large file support」

解決方法2: 顯示部分檔案內容

如果檔案內容包含中文,建議安裝 Cygwin 。如果要改成使用 Windows 內建的命令提示字元,需要考慮文字編碼切換與字型設定 (詳: 在命令提示視窗(Command Prompt)顯示UTF-8內容 - 黑暗執行緒),不過我實際測試部分內容仍會遇到文字亂碼問題。

(1) Cygwin 切換到文字檔案所在目錄
# 切換到 C 槽
cd c:

# 切換到 D 槽
cd d:

# 切換到特定目錄
cd "$(cygpath -u 'c:\Program Files\')"

(2) 逐頁觀看文字檔案內容
cat <檔名> | less
cat sample.txt | less
cat 指令是呈現檔案內容
less 指令是逐頁呈現檔案內容,輸入指令可以看到視窗最下面出現冒號 (:)。按 space 按鍵可以逐頁觀看檔案內容。按 q 則離開檔案。

(3) 顯示符合關鍵字的文字檔案內容
cat <檔名> | grep -i "<關鍵字>" | less
cat sample.txt | grep -i "coca cola" | less
grep 指令是根據給定的關鍵字條件搜尋
-i 變數要求 grep 指令忽略英文大小寫
關鍵字前後使用雙引號框住,是因為關鍵字內可能包含空白


解決方法3: 切割檔案大小

切割檔案的方式有依照位元組 (byte)、行數、或分割後的檔案數等。通常檔案以每行儲存一則完整資訊,所以說明以行數方式切割檔案。
(1) 如何知道檔案行數:在 Cygwin 視窗內輸入指令
wc -l <檔名>
wc -l sample.txt
wc 指令可以顯示檔案的位元組 (byte)、字數、行數
-l 變數要求 grep 指令回傳檔案的行數

(2) 使用分割軟體或 split 指令將大檔案切成小檔案

可利用 HJSplit 檔案分割軟體 (搜尋其他檔案分割軟體),根據檔案大小或行數切割檔案大小。

在 Cygwin 視窗內輸入指令
split -d -l <切割的行數> <檔名> <切割後的檔名>
split -d -l 10000 sample.txt sample.txt.part
split 指令可以依照指定的位元組 (byte)、行數、分割後的檔案數,進行檔案分割
-d 變數要求切割後的檔名命名依照數字順序,例如 01, 02, 03 ...。沒有指定 -d 變數,會依照字母順序,例如 aa, ab, ac ...
-l 變數要求split 指令依照行數分割

相關資料

圖檔素材: File:Notepad++ Logo.png - Wikimedia Commons

留言