【busybox记录】【shell指令】nl

目录

内容来源:

【GUN】【nl】指令介绍

【linux】【nl】指令介绍

能识别的文件格式 - 务必先看

1、标准分隔符

示例:分隔符单独写一行 - 可正确识别分隔符

示例:分隔符与其他内容混合在一起 - 无法正确识别

2、可以设置不同的分隔符

使用示例:

1、输出文件内容-默认输出行号

2、输出文件内容 - 行都有行号

3、输出文件内容 - 非空行有行号

4、输出文件内容 - 不输出行号

5、输出文件内容 - 修改标准分隔符

6、输出文件内容 - 行号递增指定间隔

7、输出文件内容 - 行号也是可以换位置的

行号显示靠左

行号显示靠右

行号显示前面补0

8、输出文件内容 - 行号也是可以设置宽度显示的

9、输出文件内容 - 初始行号也是可以修改的

10、输出文件 - 给行号和内容之间增加指定的字符

常用组合指令:

指令不常用/组合用法还需继续挖掘


内容来源:

        GUN : Coreutils - GNU core utilities

        busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【nl】指令介绍

nl:行数和写文件
nl 将每个文件(`-`表示标准输入),或如果没有给出标准输入,则将标准输入写入标准输出,并在部分或全部行中添加行号。
简介:
nl [option]... [file]...
nl将其输入分解为(逻辑上的)页面部分;默认情况下,每个逻辑页节的行号都重置为1。nl将所有输入文件视为一个文档;它不会重置行号或文件之间的逻辑页。
一个逻辑页面由三部分组成:页眉、正文和页脚。任何部分都可以是空的。每一个都可以以不同的风格编号。
在输入文件中,逻辑页各部分的开头,由一行指定,其中包含以下分隔符字符串中的一个:
‘\:\:\:’  头部开始;
‘\:\:’    body开始;
‘\:’      页脚的开始。
由'\'和':'组成这些字符串的字符可以通过选项改变(见下文),但每个字符串的模式不能改变。
在输出时,区段分隔符被替换为空行。在输入文件中,位于第一个section定界符字符串之前的任何文本都被认为是body部分的一部分,因此nl将不包含section定界符的文件视为单个body部分。
该程序接受以下选项。参见第2章[常见选项],第2页。

‘-b style’
‘--body-numbering=style’
	为每个逻辑页的正文部分中的行选择编号样式。当某一行没有编号时,当前的行号不会递增,但行号分隔符仍然位于该行的前面。样式如下:
	‘a’ 所有行都编号,
	‘t’ 只编号非空行(默认为 body),
	‘n’ 不编号(默认为 header 和 footer),
	‘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)。数字可以是负数,也可以是减数。
‘-l number’
‘--join-blank-lines=number’
	将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)。
	
退出状态为零表示成功,非零值表示失败。

【linux】【nl】指令介绍

root@localhost ~]# nl --help
用法:nl [选项]... [文件]...
Write each FILE to standard output, with line numbers added.

如果没有指定文件,或者文件为"-",则从标准输入读取。

必选参数对长短选项同时适用。
  -b, --body-numbering=STYLE      use STYLE for numbering body lines
  -d, --section-delimiter=CC      use CC for logical page delimiters
  -f, --footer-numbering=STYLE    use STYLE for numbering footer lines
  -h, --header-numbering=STYLE    use STYLE for numbering header lines
  -i, --line-increment=NUMBER     line number increment at each line
  -l, --join-blank-lines=NUMBER   group of NUMBER empty lines counted as one
  -n, --number-format=FORMAT      insert line numbers according to FORMAT
  -p, --no-renumber               do not reset line numbers for each section
  -s, --number-separator=STRING   add STRING after (possible) line number
  -v, --starting-line-number=NUMBER  first line number for each section
  -w, --number-width=NUMBER       use NUMBER columns for line numbers
      --help		显示此帮助信息并退出
      --version		显示版本信息并退出

Default options are: -bt -d'\:' -fn -hn -i1 -l1 -n'rn' -s<TAB> -v1 -w6

CC are two delimiter characters used to construct logical page delimiters;
a missing second character implies ':'.

STYLE is one of:

  a      number all lines
  t      number only nonempty lines
  n      number no lines
  pBRE   number only lines that contain a match for the basic regular
         expression, BRE

FORMAT is one of:

  ln     left justified, no leading zeros
  rn     right justified, no leading zeros
  rz     right justified, leading zeros


GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 nl 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/nl>
或者在本地使用:info '(coreutils) nl invocation'

能识别的文件格式 - 务必先看

1、标准分隔符

格式如下:

        \:\:\:        与   \:\:       之间的为每一段的头

        \:\:          与   \:         之间的为每一段的body,即身子

         \:           与    \:\:\:    之间的为每一段的结束

        周期循环,组成整个文件

        PS: 分隔符只能单独占用一行,如果与内容写在同一行,会无法识别

示例:分隔符单独写一行 - 可正确识别分隔符

正确识别,正确输出内容

示例:分隔符与其他内容混合在一起 - 无法正确识别

没有识别到分隔符,错误地输出了内容

2、可以设置不同的分隔符

分隔符字符本身是可以变换的,默认是 \: ,可以通过 -d 选项设置其他分隔符,但是格式不能变,例如:

使用示例:

1、输出文件内容-默认输出行号

指令: nl test1.txt

第一组分隔符为第一段,文件行号只记录body内的,行号从0递增

第二组分隔符为第二段,文件行号只记录body内的,行号从0递增,默认不输出空行

2、输出文件内容 - 行都有行号

指令: nl -b a test1.txt

3、输出文件内容 - 非空行有行号

指令: nl -b t test1.txt

4、输出文件内容 - 不输出行号

指令: nl -b n test1.txt

5、输出文件内容 - 修改标准分隔符

指令: nl -d "ab" test2.txt

6、输出文件内容 - 行号递增指定间隔

指令: nl -b a -i 2 test1.txt

增加 -b a 选项是为了能更好的看到行号递增

7、输出文件内容 - 行号也是可以换位置的

行号显示靠左

指令:nl -b a -n ln test1.txt

行号显示靠右

指令: nl -b a -n rn test1.txt

行号显示前面补0

指令:nl -b a -n rz test1.txt

8、输出文件内容 - 行号也是可以设置宽度显示的

指令:nl -b a -n rz -w 10 test1.txt

选项 -b a -n rz 是为了更好的显示出宽度变化,设置行号宽度显示为10个字符

9、输出文件内容 - 初始行号也是可以修改的

指令: nl -b a -n rz -v 19 test1.txt

选项 -b a -n rz 是为了更好的展现变化

初始行号修改为19

10、输出文件 - 给行号和内容之间增加指定的字符

指令: nl -b a -n ln -s "line    " test1.txt 

-s后面的字符串多加几个空格视为了更直观地显示

常用组合指令:

很少用,所以就这样吧

指令不常用/组合用法还需继续挖掘

  • 34
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻面条EW

感谢您的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值