Text-Processing

在列印格式的文本中,什麼被認為是頁眉和頁腳?

  • July 28, 2019

nl手冊:

...

-f, --footer-numbering=STYLE
         use STYLE for numbering footer lines

-h, --header-numbering=STYLE
      use STYLE for numbering header lines

...

你能提供一個使用-fand-h選項的例子嗎?什麼被認為是頁腳或頁眉?

看起來您正在閱讀 GNU 的聯機幫助頁nlinfo nl(或線上)中的完整文件對其進行了更完整的描述:

nl將其輸入分解為(邏輯)頁面部分;預設情況下,每個邏輯頁部分的行號都重置為 1。nl將所有輸入文件視為單個文件;它不會重置文件之間的行號或邏輯頁。

一個邏輯頁面由三個部分組成:頁眉、正文和頁腳。任何部分都可以為空。每個都可以以與其他不同的樣式編號。

邏輯頁各部分的開頭在輸入文件中由恰好包含以下分隔符字元串之一的行指示:

\:\:\:

標題的開始;

\:\:

身體的開始;

\:

頁腳的開始。

生成這些字元串的兩個字元可以通過選項更改(見下文),但每個字元串的模式\:長度不能更改。

節分隔符在輸出時被空行替換。輸入文件中第一節分隔符字元串之前的任何文本都被視為正文部分的一部分,因此nl將不包含節分隔符的文件視為單個正文部分。

或者,類似地來自POSIX 規範

nl實用程序根據邏輯頁面查看它讀取的文本。行號應在每個邏輯頁的開始處重新設置。邏輯頁面由頁眉、正文和頁腳部分組成。空白部分有效。不同的行編號選項可獨立用於頁眉、正文和頁腳(例如,不對頁眉和頁腳行進行編號,而僅對正文中的空白行進行編號)。

邏輯頁部分的開始應由只包含以下分隔符的輸入行發出信號:

Line                           Start of
\:\:\:                         Header
\:\:                           Body
\:                             Footer

一個例子:

% printf "\\:\\:\n%s\n\\:\nfooter\n" {a..c} | nl

    1  a

      footer

    1  b

      footer

    1  c

      footer
% printf "\\:\\:\n%s\n\\:\nfooter\n" {a..c} | nl -f a

    1  a

    1  footer

    1  b

    1  footer

    1  c

    1  footer

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