Linux/Unix 中的 Cat 命令显示行号
您可以在 Linux 或类 Unix 操作系统下使用 cat 命令 连接文件并显示在屏幕上。cat命令还会使用以下语法对所有输出行进行编号,从数字 1 开始:
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 或 Unix 终端 |
类别 | 文件管理 |
先决条件 | cat 命令 |
操作系统兼容性 | BSD • Linux • macOS • Unix |
预计阅读时间 | 3 分钟 |
Cat 命令的语法显示行号
使用 cat 命令查看行号的语法如下:
这将在文件中的每一行前面显示行号。当文本无法在屏幕上显示时,我们可以使用 more 命令/less 命令作为过滤器:
$ cat -n fileNameHere
$ cat --number foo.c
$ cat --number foo.c | more
$ cat --number foo.c | less
使用 cat 命令显示行号
-b/选项编号--number-nonblank所有非空输出行,从一开始,语法为:
$ cat -b fileNameHere
OR
$ cat --number-nonblank filename
删除空输出并显示行号
最后,使用-s / --squeeze-blank选项抑制或删除重复的空输出行。例如:
示例输出:
$ cat -s -n fileNameHere
$ cat -s -n /etc/resolv.conf
1 # 2 # Mac OS X Notice 3 # 4 # This file is not used by the host name and address resolution 5 # or the DNS query routing mechanisms used by most processes on 6 # this Mac OS X system. 7 # 8 # This file is automatically generated. 9 # 10 search example.com 11 nameserver 8.8.8.8 12 nameserver 192.168.2.254 13 nameserver 8.8.4.4
或(仅限 GNU 语法)
$ cat --squeeze-blank -n filename
了解 nl 命令
在Linux或Unix系统下使用nl命令对文件进行编号。语法是:
$ nl filename
示例
创建一个名为hello.c的文本文件,内容如下:
/* Purpose: Sample see program to print Hello world on stdout * Author: example * Copyright: None / Copyleft */ #include<stdio.h> /* our main */ int main(void){ printf("Hello world\n"); return 0; }
使用 cat 或 nl 命令显示行号:
$ cat -n hello.c
$ nl hello.c
图 01:使用 cat 和 nl 命令显示 hello.c 的行号。
关于 sed 命令的说明
要仅打印第 3 行,请使用 sed 命令:
$ sed -n 3p /etc/resolv.conf
让我们使用 sed 命令打印第 3 行和第 5 行:
$ sed -n -e 3p -e 5p /etc/resolv.conf
接下来要查看特定的行号范围,比如显示 3 到 5 之间的行,请运行:
$ sed -n 3,5p /etc/resolv.conf
如何使用cat 和 nl 的键盘快捷Ctrl+C键Ctrl+D
Linux、FreeBSD、macOS 和类 Unix 系统中值得了解的两个重要键盘快捷键会影响许多命令。
- Ctrl+C用于终止正在运行的程序。当程序没有响应或您想要停止它时,这很方便。
- 另一方面,Ctrl+D用于退出 bash 终端。当远程连接到 Linux 或 Unix 服务器时,此快捷方式非常有用,因为它使您能够通过基于 ssh 的会话快速断开连接。
除了这两个主要用途之外,Ctrl+C 和 Ctrl+D 还可以用于其他用途。我为您准备了一个表格,总结了 Linux 和 Unix bash 终端中 Ctrl+C 和 Ctrl+D 的功能:
捷径 | 目的 |
---|---|
Ctrl+C | 终止正在运行的程序。 |
Ctrl+D | 注销 bash 终端(包括远程 ssh 会话)。 |
Ctrl+C | 中断长时间运行的命令。 |
Ctrl+D | 向程序发送文件结束 (EOF) 信号。 对于 cat/nl,它也可以保存文件。例如: cat -n > filename |
总结
您学习了各种可以在 Linux 或类 Unix 系统上显示行号的命令。使用 man 命令/info 命令或 help 命令查看以下手册页。例如:
输出(或在此处查看 GNU.ORG 信息页):
$ man cat
$ man nl
$ man sed
$ info '(coreutils) nl invocation'
$ nl --help
Usage: nl [OPTION]... [FILE]... Write each FILE to standard output, with line numbers added. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -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 display this help and exit --version output version information and exit 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 online help: <https://www.gnu.org/software/coreutils/> Full documentation at: <https://www.gnu.org/software/coreutils/nl> or available locally via: info '(coreutils) nl invocation'