Notepad++ 是免費的文字編輯器軟體,好用但是開啟大檔案 (例如檔案大小超過 600MB) 會遇到「file is too big to be opened」錯誤訊息。解決方法改用別的編輯器軟體、利用指令顯示部分檔案內容或者切割文字檔。
(2) 付費軟體: EmEditor、UltraEdit 可免費試用 30 天
更多軟體清單可以參考 Comparison of text editors - Wikipedia ,搜尋文字「large file support」
(1) Cygwin 切換到文字檔案所在目錄
(2) 逐頁觀看文字檔案內容
less 指令是逐頁呈現檔案內容,輸入指令可以看到視窗最下面出現冒號 (:)。按 space 按鍵可以逐頁觀看檔案內容。按 q 則離開檔案。
(3) 顯示符合關鍵字的文字檔案內容
-i 變數要求 grep 指令忽略英文大小寫
關鍵字前後使用雙引號框住,是因為關鍵字內可能包含空白
(1) 如何知道檔案行數:在 Cygwin 視窗內輸入指令
-l 變數要求 grep 指令回傳檔案的行數
(2) 使用分割軟體或 split 指令將大檔案切成小檔案
可利用 HJSplit 檔案分割軟體 (搜尋其他檔案分割軟體),根據檔案大小或行數切割檔案大小。
在 Cygwin 視窗內輸入指令
-d 變數要求切割後的檔名命名依照數字順序,例如 01, 02, 03 ...。沒有指定 -d 變數,會依照字母順序,例如 aa, ab, ac ...
-l 變數要求split 指令依照行數分割
相關資料
圖檔素材: File:Notepad++ Logo.png - Wikimedia Commons
解決方法1: 改用 64 位元的 Notepad++
如果目前使用 32 位元的 Notepad++,改安裝 64 位元的 Notepad++,可增加處理的檔案大小 (2020-02-22 更新)解決方法2: 直接使用支援大檔案的編輯器軟體
(1) 免費軟體: VIM (gVim Portable)、MadEdit-Mod (Madedit-Mod 0.4.10 免安裝中文版)(2) 付費軟體: EmEditor、UltraEdit 可免費試用 30 天
更多軟體清單可以參考 Comparison of text editors - Wikipedia ,搜尋文字「large file support」
解決方法3: 顯示部分檔案內容
如果檔案內容包含中文,建議安裝 Cygwin 。如果要改成使用 Windows 內建的命令提示字元,需要考慮文字編碼切換與字型設定 (詳: 在命令提示視窗(Command Prompt)顯示UTF-8內容 - 黑暗執行緒),不過我實際測試部分內容仍會遇到文字亂碼問題。(1) Cygwin 切換到文字檔案所在目錄
# 切換到 C 槽
cd c:
# 切換到 D 槽
cd d:
# 切換到特定目錄
cd "$(cygpath -u 'c:\Program Files\')"
(2) 逐頁觀看文字檔案內容
cat <檔名> | lesscat 指令是呈現檔案內容
cat sample.txt | less
less 指令是逐頁呈現檔案內容,輸入指令可以看到視窗最下面出現冒號 (:)。按 space 按鍵可以逐頁觀看檔案內容。按 q 則離開檔案。
(3) 顯示符合關鍵字的文字檔案內容
cat <檔名> | grep -i "<關鍵字>" | lessgrep 指令是根據給定的關鍵字條件搜尋
cat sample.txt | grep -i "coca cola" | less
-i 變數要求 grep 指令忽略英文大小寫
關鍵字前後使用雙引號框住,是因為關鍵字內可能包含空白
解決方法4: 切割檔案大小
切割檔案的方式有依照位元組 (byte)、行數、或分割後的檔案數等。通常檔案以每行儲存一則完整資訊,所以說明以行數方式切割檔案。(1) 如何知道檔案行數:在 Cygwin 視窗內輸入指令
wc -l <檔名>wc 指令可以顯示檔案的位元組 (byte)、字數、行數
wc -l sample.txt
-l 變數要求 grep 指令回傳檔案的行數
(2) 使用分割軟體或 split 指令將大檔案切成小檔案
可利用 HJSplit 檔案分割軟體 (搜尋其他檔案分割軟體),根據檔案大小或行數切割檔案大小。
在 Cygwin 視窗內輸入指令
split -d -l <切割的行數> <檔名> <切割後的檔名>split 指令可以依照指定的位元組 (byte)、行數、分割後的檔案數,進行檔案分割
split -d -l 10000 sample.txt sample.txt.part
-d 變數要求切割後的檔名命名依照數字順序,例如 01, 02, 03 ...。沒有指定 -d 變數,會依照字母順序,例如 aa, ab, ac ...
-l 變數要求split 指令依照行數分割
相關資料
- [請問] windows下讀取超大純文字檔超快的編輯器? - 看板 EZsoft - 批踢踢實業坊
- windows - Text editor to open big (giant, huge, large) text files - Stack Overflow
- notepad++ - How do I read a text file of about 2 GB? - Stack Overflow
- Linux cat command help and examples
- Linux less command information and examples
- Cygwin convert windows path to unix then change dir - Super User
- Linux grep command help and examples
- Linux wc command help and examples
- Linux split command help and examples
- Linux 使用 split 指令將大檔案切割成小檔案,方便網路傳輸 - G. T. Wang
- How to split large text file in windows? - Stack Overflow
- F.W.知識瑣記: 如何在Windows環境分割很大的文字檔
圖檔素材: File:Notepad++ Logo.png - Wikimedia Commons
留言
張貼留言