
答案1
試試這個實驗:
- 打開一個 25 行的終端機。
- 跑步
seq 1 1 100 > test_text
。 - 跑步
more test_text
。 - 查看螢幕上最後一行的前一行。會說
24
。 - 按f至跳過頁面。
- 看看螢幕上的第一行。會說
49
。
f跳過一頁文字。因此,您看到了文件的第一個“頁”,按下f,您看到了第三頁。
此時,如果f再次按,您將看到... skipping 24 lines
文件的最後 4 行。more
將退出,因為沒有足夠的行來顯示第五頁。
請再次嘗試使用space。space不跳過頁面。您將看到所有頁面。
編輯
這個答案指的是more version 5.19 (Berkeley 6/29/88), which is currently in use in the Linux community
(參見男人更多)。正如 @Kusalananda 報導的那樣,“實驗”的結果可能會因不同版本/unices而異。
line
a和 a之間的區別row of text on a terminal
通常這兩個定義是可以互換的。在這種情況下,區分它們很重要。
- 行是文字檔案中以換行符(字元)結尾的字元序列
\n
。wc -l
指令計算檔案中的行數。線的長度可以是零到無窮大之間的任何數字。 - 一行文字(在終端機上)是終端機上顯示的字元序列。它具有端子寬度的固定長度。
我的第一個「實驗」太簡單了,所有的行(非常肯定)都比行短。
在您的文件中,行可能比行長得多。若要顯示它們,more
請將每行排列為多行。
讓我們試試一個新的實驗:
example
建立一個包含以下內容的文件:006 XX\n010 XXYYYY\n015 XXYYYYZZZZZ\n
這是一個 3 行文件。每行的長度依序為:6、10 和 15 個字元。不要忘記計算數字後面的空格。
跑步
wc -l example
。 3 是結果。在 8 列終端機上,您應該會看到類似的內容
006 XX 010 XXYY YY 015 XXYY YYZZZZZ
第一行是 8 個字元長度:
006
+ 一個空格 +XX
+ 2 個空格。第二行是 8 個字元長度:
010
+ 一個空格 +XXYY
。第三行是 8 個字元長度:
YY
+ 8 個空格。等等等等.
您的 3 行文字現在是 5 行文字。
的手冊頁more
說:
f Skip forward k screenfuls of text. Defaults to 1.
這意味著more
將跳過很多行文字來填充終端的所有行。
答案2
但它顯示
...skipping 29 lines
然後文件關閉並返回提示
當您按下f
並到達文件末尾時就會發生這種情況。
例如:您有一個 40 行的文件,您執行more myfileof60lines.txt
,它會顯示前 29 行,然後您按f
,因此它將跳過接下來的 29 行,但在此之前,它會到達文件的末尾。因此,您最終會看到,以及到達文件末尾時...skipping 29 lines
的正常行為,即傳回提示符。more