透過運行命令限制一次顯示的行數

透過運行命令限制一次顯示的行數

我在終端機中運行一些命令,輸出它們所做的一切,這很棒,但我不需要整個視窗充滿數千行輸入。有沒有辦法讓輸出的最後 x 行顯示,其餘的都被刪除?

答案1

您可以使用 tail 命令。它將僅列出使用者指定的文件的最後幾行。如果需要的話,還會即時列出最後幾行。 tail -n 5 將列印最後 5 行。只需做 man tail 即可獲得其他選擇。

答案2

在不知道您看到哪些命令的大量輸出的情況下,我可以說您可以透過使用「管道」將第一個命令的輸出發送到第二個命令來限制使用tail 命令在終端上輸出的行數。一個例子是:

ls | tail -n 5  

ls 指令的輸出不是傳送到螢幕,而是傳送(或透過管道)到 tail 指令。由於指定了“-n 5”,此處的 tail 命令將列印 ls 輸出的最後 5 行。

答案3

控制台輸出只是一行一行地寫入輸出流(標準輸出或標準錯誤)。控制台視窗和終端應用程式僅顯示這些內容,並向上捲動先前的內容。他們無法擦除任何已列印的行。您需要:

  1. 控制台/終端應用程序,具有省略除最後一個之外的所有內容的內建功能n收到新線後重繪時的線;這也許是可能的,但我不知道怎麼做。
  2. 可以執行此操作的附加應用程序,從控制台啟動作為應用程式的包裝器;screen也許tmux可以做到,但我不知道該如何做到。
  3. 一個可以執行此操作的應用程序,您可以將應用程式的控制台輸出透過管道傳輸到該應用程式;multitail適合這裡,例如:

    find | env LINES=10 multitail -j
    

    將顯示 的輸出find,但一次不會顯示超過 10 行。

您尚未說明您所使用的作業系統,但multitail可用於 Linux,例如作為 Ubuntu 軟體包。

相關內容