Unix & Linux 笔记(9)

来源:互联网 发布:java重载函数 参数子类 编辑:程序博客网 时间:2024/05/17 01:14

第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 左对齐,没有前导0rn 右对齐,没有前导0rz 右对齐,有前导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...]

expandunexpand之间最大的区别就是在默认情况下,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 | lpfmt –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
0 0
原创粉丝点击