使用 f 在更多尋呼機中向前導航
它在手冊頁中給出
more
,f
用於向前跳過 k 屏文本(預設為 1)。我保存了一個很長的文件,cat
並使用more
它在螢幕上逐頁顯示,但是當我按下f
第一頁時本身,它沒有向前導航,但它顯示... skipping 29 lines
,然後文件關閉並提示返回。當我嘗試導航時,spacebar
它按預期正常工作。由於文件長度足夠長,它應該通過每次跳過一頁來向前導航。為什麼它表現出如此不同的行為?
試試這個實驗:
- 打開一個有 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
(見man more)。正如@Kusalananda 報告的那樣,“實驗”的結果可能因不同的版本/版本而異。
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
將跳過這麼多行文本來填充終端的所有行。