Nl: 添加行号并写入文件

来自泡泡学习笔记
跳到导航 跳到搜索

nl会将每个文件('-'表示标准输入),如果没有给定文件,则将标准输入写入标准输出,并在某些或所有行上添加行号。用法:

nl [option]… [file]…


退出状态为零表示成功,非零值表示失败。


nl将其输入分解为(逻辑)页节;默认情况下,在每个逻辑页节中,行号将重新设置为1。nl将所有输入文件视为单个文档;它不会在文件之间重置行号或逻辑页。


逻辑页面由三个部分组成:标题、正文和页脚。任何部分都可以为空。每个部分可以以与其他部分不同的样式进行编号。


逻辑页面的开始在输入文件中由包含以下任意一个分隔符字符串的行来指示:


  • ':::'

标题开始;


  • '::'

正文开始;


  • ':'

页脚开始。


这些字符串由'\'和':'组成的字符可以通过选项进行更改(请参见下文),但每个字符串的模式不能更改。


在输出中,部分分隔符将被空行替换。在输入文件中的第一个部分分隔符字符串之前的任何文本被视为正文部分的一部分,因此如果文件不包含部分分隔符,nl将其视为单个正文部分。


该程序接受以下选项。还请参阅通用选项。


'-b style'

'--body-numbering=style'

选择每个逻辑页面正文部分行的编号样式。当一行没有编号时,当前行号不会增加,但行号分隔符字符仍会添加到行前。样式有:


  • 'a'

对所有行进行编号,


  • 't'

仅对非空行进行编号(正文的默认样式),


  • 'n'

不对行进行编号(标题和页脚的默认样式),


  • 'pbre'

仅对包含与基本正则表达式bre匹配的行进行编号。请参阅《GNU Grep 手册》中的正则表达式。


'-d cd'

'--section-delimiter=cd'

用于将章节分隔符设置为cd;默认为'\:'。如果只给出c,则第二个分隔符保持为':'。作为GNU的扩展,可以指定超过两个字符,并且如果cd为空(-d ),则禁用章节匹配。(请记住使用引号或额外的反斜杠保护'\'或其他元字符,以防止Shell扩展)。


'-f style'

'--footer-numbering=style'

类似于--body-numbering。


'-h style'

'--header-numbering=style'

类似于--body-numbering。


'-i number'

'--line-increment=number'

用于逐行递增行号(默认为1)。number可以为负数以递减行号。


'-l number'

'--join-blank-lines=number'

将指定数量(默认为1)连续的空行视为一个逻辑行进行编号,并且只对最后一个空行编号。如果连续的空行数量少于指定数量,则不对其进行编号。空行是指不包含任何字符的行,甚至没有空格或制表符。


'-n format'

'--number-format=format'

用于选择行号格式(默认为rn):

  • 'ln'左对齐,没有前导零;


  • 'rn'右对齐,没有前导零;


  • 'rz'右对齐,有前导零。


'-p'

'--no-renumber'

用于在每个逻辑页的开头不重置行号。


'-s string'

'--number-separator=string'

用于在输出中将行号与文本行分隔开,使用指定的字符串(默认为制表符)。


'-v number'

'--starting-line-number=number'

用于设置每个逻辑页的初始行号为指定的数字(默认为1)。初始数字可以为负数。


'-w number'

'--number-width=number'

用于指定行号的字符宽度(默认为6个字符)。