您的位置:首页 > 运维架构 > Linux

Unix & Linux 笔记(9)

2016-05-27 15:38 369 查看

第18章 过滤器:统计和格式化

18.1 创建行号:
nl

在文本中插入临时行号。

nl [-v start] [-i increment] [-b a] [-n ln|rn|rz] [file…]
-v 起始行号
-i 增量
-b a(all),强制对所有行编号,body numbering
-n number format(不常用)

ln 左对齐,没有前导0
rn 右对齐,没有前导0
rz 右对齐,有前导0


18.2 统计行、单词和字符数量:
wc

wc [-c l L w] [file…]
-L 显示最长行的长度


18.3
Unix
使用制表符的方式

制表位
tab
stop


当终端遇到制表符时,它像打字机一样将光标移动到当前行的下一个制表位。

18.4 可视化制表符和空格

vi
中查看,

:set list; :set nolist


制表符将显示为
^I


18.5 将制表符转化成空格:
expand

expand [-i] [-t size | -t list] [file...]
-i (initial)只转换行开头的制表符
-t 设置每个制表符为指定数字的宽度,而不是默认的8
-t 指定制表符位置列表,用逗号分隔


18.6 将空格转换成制表符:
unexpand

unexpand [-a] [-t size | -t list] [file...]


expand
unexpand
之间最大的区别就是在默认情况下,
unexpand
只把行开头的空格转换为制表符。这是因为大多数时候,只使用
unexpand
进行缩进,并不希望替换中间的所有空格。可以使用
-a
(
all
,全部)选项,
unexpand
将替换所有的空格,即使这些空格并没有位于行的开头。

18.7 格式化行:
fold

fold [-s] [-w width] [file...]
-w width,最大长度
-s break at spaces


18.8 80字符行

18.9 格式化段落:
fmt

fmt
的目标就是将段落中的各行连接在一起,从而使段落尽可能的短小和紧凑,而且不会改变内容和空白符。

fmt [-su] [-w width] [file...]

-u uniform space,统一间距,告诉fmt只减少空格,使单词之间最多只能有一个空格,句子末尾最多只能有两个空格。
-s split only,仅拆分长行,不连接短行(处理程序时)


18.10 打印的旧时代

打印作业

18.11 按列格式化文本:
pr

pr
主要功能是按页格式化文本,使其适合于打印。

pr [-dt] [+beg[:end]] [-h text] [-l n] [-o margin] [-W] [file...]

-d 双倍行距
-t 消除标题,页之间没有了间隔
-o offset,默认情况下,pr不插入左边缘,因为打印机自动创建边缘


beg
是需要格式化的第一页,

end
是需要格式化的最后一页;

text
是标题中间的文本;

margin
是左边缘大小;

width
是输出的宽度,

file
是文件的名称。

calculate | pr | lp
fmt –s –w 45 essay | pr –d –o 5 –W 50 | lpr


字处理程序将每个段落存储为一个长行。

程序行宽
fold
80字符/行
fmt
75字符/行
pr
72字符/行

18.12 按列格式化文本:
pr

pr [-mt] [-columns] [-l lines] [-W width] [file...]


columns
是输出的列数,

lines
是每页的行数,

width
是输出的宽度,

file
是文件的名称。

fmt –w 35 article | pr -2 –l 48 > article-columns


在文本分列时,
pr
会盲目的截断太长的行。因此,如果文本所包含行的长度大于列宽,那么在将文本发送给
pr
之前必须使用
fold –s
或者
fmt
分隔行。

pr
将多个文本分别格式化成单独的列,使用
-m
(
merge
)选项,
pr
将在单独的列中输出每个文件。

pr -m file1 file2 file3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: