[me@linuxbox ~]$ nl distros.txt | head 1 SUSE 10.2 12/07/2006 2 Fedora 10 11/25/2008 3 SUSE 11.0 06/19/2008 4 Ubuntu 8.04 04/24/2008 5 Fedora 8 11/08/2007 6 SUSE 10.3 10/04/2007 7 Ubuntu 6.10 10/26/2006 8 Fedora 7 05/31/2007 9 Ubuntu 7.10 10/18/2007 10 Ubuntu 7.04 04/19/2007
标记 | 含义 |
---|---|
\:\:\: | 逻辑页眉的开头 |
\:\: | 逻辑页正文的开头 |
\: | 逻辑页脚的开头 |
选项 | 含义 |
---|---|
-b |
将主体编号设置为 |
-f |
将页脚编号设置为 |
-h |
将页眉编号设置为 |
-i |
将页码增量设置为 |
-n |
将主体编号设置为 |
-p | 不要在每个逻辑页面的开头重置页面编号。 |
-s |
在每个行号的末尾添加 |
-v |
将每个逻辑页的第一行号设置为 |
-w |
将行号字段的宽度设置为 |
# sed script to produce Linux distributions report 1 i\ \\:\\:\\:\ \ Linux Distributions Report\ \ Name Ver. Released\ ---- ---- --------\ \\:\\: s/\([0-9]\{2\}\)\/\([0-9]\{2\}\)\/\([0-9]\{4\}\)$/\3-\1-\2/ $ a\ \\:\ \ End Of Report
[me@linuxbox ~]$ sort -k 1,1 -k 2n distros.txt | sed -f distros-nl.sed | nl Linux Distributions Report Name Ver. Released ---- ---- -------- 1 Fedora 5 2006-03-20 2 Fedora 6 2006-10-24 3 Fedora 7 2007-05-31 4 Fedora 8 2007-11-08 5 Fedora 9 2008-05-13 6 Fedora 10 2008-11-25 7 SUSE 10.1 2006-05-11 8 SUSE 10.2 2006-12-07 9 SUSE 10.3 2007-10-04 10 SUSE 11.0 2008-06-19 11 Ubuntu 6.06 2006-06-01 12 Ubuntu 6.10 2006-10-26 13 Ubuntu 7.04 2007-04-19 14 Ubuntu 7.10 2007-10-18 15 Ubuntu 8.04 2008-04-24 16 Ubuntu 8.10 2008-10-30 End Of Report
[me@linuxbox ~]$ echo "The quick brown fox jumped over the lazy dog." | fold -w 12 The quick br own fox jump ed over the lazy dog.
[me@linuxbox ~]$ echo "The quick brown fox jumped over the lazy dog." | fold -w 12 -s The quick brown fox jumped over the lazy dog. [me@linuxbox ~]$ echo "The quick brown fox jumped over the lazy dog." | fold -w 4 -s The quic k brow n fox jump ed over the lazy dog.
选项 | 说明 |
---|---|
-c | 在顶部边缘(crown margin)模式下运行。这样可以保留段落前两行的缩进。后续行与第二行的缩进对齐。 |
-p |
仅格式化以前缀 此选项可用于格式化源代码注释中的文本。例如,任何使用“#”字符来描述注释的编程语言或配置文件都可以通过指定-p '# '来格式化,以便只格式化注释。 |
-s | 仅拆分模式。在此模式下,行只会被拆分以适合指定的列宽。短线不会连接到填充线。 当格式化文本(如不需要连接的代码)时,此模式很有用。 |
-u | 执行均匀间隔。类似传统的“打字机风格”格式。 这意味着单词之间只有一个空格,句子之间有两个空格。 这种模式对于删除“对齐”非常有用,文本中填充了空格,以强制左右边距对齐。 |
-w |
设置文本格式,使其适合 实际上会比指定宽度稍短,以实现行平衡。 |
[me@linuxbox ~]$ cat > fmt-code.txt # This file contains code with comments. # This line is a comment. # Followed by another comment line. # And another. This, on the other hand, is a line of code. And another line of code. And another. [me@linuxbox ~]$ fmt -w 50 -p '# ' fmt-code.txt # This file contains code with comments. # This line is a comment. Followed by another # comment line. And another. This, on the other hand, is a line of code. And another line of code. And another.
[me@linuxbox ~]$ pr -l 15 -w 65 distros.txt 2016-12-11 18:27 distros.txt Page 1 SUSE 10.2 12/07/2006 Fedora 10 11/25/2008 SUSE 11.0 06/19/2008 Ubuntu 8.04 04/24/2008 Fedora 8 11/08/2007 2016-12-11 18:27 distros.txt Page 2 SUSE 10.3 10/04/2007 Ubuntu 6.10 10/26/2006 Fedora 7 05/31/2007 Ubuntu 7.10 10/18/2007 Ubuntu 7.04 04/19/2007 ......
[me@linuxbox ~]$ printf "I formatted the string: %s\n" foo I formatted the string: foo
[me@linuxbox ~]$ printf "I formatted '%s' as a string.\n" foo I formatted 'foo' as a string.
说明符 | 含义 |
---|---|
d | 将数字格式化为有符号的十进制整数。 |
f | 格式化并输出一个浮点数。 |
o | 将整数格式化为八进制数。 |
s | 格式化字符串。 |
x | 在需要时,使用小写a到f将整数格式为十六进制数。 |
X | 与x相同,但使用大写字母。 |
% | 打印文字%符号,即指定%% |
[me@linuxbox ~]$ printf "%d, %f, %o, %s, %x, %X\n" 380 380 380 380 380 380 380, 380.000000, 574, 380, 17c, 17C
组件 | 描述 |
---|---|
共有五种不同的徽标:
使用“替代格式”进行输出。因数据类型而异。 对于o(八进制数)转换,输出的前缀为0; 对于x和X(十六进制数)转换,输出分别以0x和0X作为前缀。 用零填充输出。这意味着该字段将填充前导零,例如000380。 左对齐输出。默认情况下 为正数生成前导空格。 签署正数。默认情况下 |
|
指定最小字段宽度的数字。 | |
对于浮点数,指定小数点后要输出的精度位数。 对于字符串转换,precision指定要输出的字符数。 |
源数值 | 格式 | 结果 | 说明 |
---|---|---|---|
380 | "%d" | 380 | 整数的简单格式 |
380 | "%#x" | 0x17c | 使用“替代格式”标志将整数格式化为十六进制数 |
380 | "%05d" | 00380 | 带前导零(填充)和最小字段宽度为五个字符的整数格式。 |
380 | "%05.5f" | 380.00000 | 格式化为带填充和小数点后5位精度的浮点数的数字。 由于指定的最小字段宽度(5)小于格式化数字的实际宽度,因此填充无效。 |
380 | "%010.5f" | 0380.00000 | 通过将最小字段宽度增加到10,填充现在可见。 |
380 | "%+d" | +380 | 在正数前面加正号。 |
380 | "%-d" | 380 | 在负数前面加负号。 |
abcdefghijk | "%5s" | abcedfghijk | 以最小字段宽度格式化的字符串。 |
abcdefghijk | "%.5s" | abcde | 通过对字符串应用精度,它将被截断。 |
[me@linuxbox ~]$ printf "%s\t%s\t%s\n" str1 str2 str3 str1 str2 str3
[me@linuxbox ~]$ printf "Line: %05d %15.3f Result: %+15d\n" 1071 3.14156295 32589 Line: 01071 3.142 Result: +32589
[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | head .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3. .TH LS "1" "January 2018" "GNU coreutils 8.28" "User Commands" .SH NAME ls \- list directory contents .SH SYNOPSIS .B ls [\fI\,OPTION\/\fR]... [\fI\,FILE\/\fR]... .SH DESCRIPTION .\" Add any additional description here .PP
[me@linuxbox ~]$ man ls | head LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]...
[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc -T ascii | head LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]...
[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | groff -mandoc | head %!PS-Adobe-3.0 %%Creator: groff version 1.18.1 %%CreationDate: Thu Feb 5 13:44:37 2009 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%DocumentSuppliedResources: procset grops 1.18 1 %%Pages: 4 %%PageOrder: Ascend %%Orientation: Portrait