Less

less 命令記憶體不足

  • October 5, 2021

在大文件中搜尋字元串(無正則表達式等)less filenameless -b 1 filename退出或列印時,它無法分配記憶體。top顯示在它死之前使用大約 5% 的記憶體較少(1 秒間隔)。

我可以使用什麼其他工具來支持大文件?該文件只有 100 mb 的日誌。

$ less -V
less 458 (GNU regular expressions)
Copyright (C) 1984-2012 Mark Nudelman

作業系統詳細資訊:

$ ulimit -a
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-m: resident set size (kbytes)      unlimited
-u: processes                       15988
-n: file descriptors                1024
-l: locked-in-memory size (kbytes)  64
-v: address space (kbytes)          2048000
-x: file locks                      unlimited
-i: pending signals                 15988
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited
$ cat /etc/*rele*
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.10

這可能與您的記憶無關,並且與less寫入方式以及為其內部變數分配多少空間有關。

無論如何,less真的不是為此而設計的,你應該使用類似的工具grep

grep yourQuery file

如果您想查看查詢周圍的行(例如 5 行),請執行以下命令:

grep -C 5 yourQuery file

如果您有太多匹配項,您可以將輸出傳遞給less,現在您應該能夠搜尋它:

grep -C 5 yourQuery file | less

當然,如果您想手動執行此操作,您可以在文本編輯器中打開文件。任何認真的編輯都喜歡vimemacs將能夠打開並蒐索 100MB 的文件。

引用自:https://unix.stackexchange.com/questions/113925