过滤器,使用过滤器构建管道,用之操作文本
文本过滤指的是这样一个过程:获得文本的输入流,并在将文本发送给输出流之前对文本执行一些转换
命令管道使其中来自一个命令的输出被传输或重定向,以用作下一个命令的输入
使用 | 和 > 操作实现管道和基本的输出重定向。
流是一个可以使用库功能读取或写入的字节序列,库功能向应用程序隐藏了底层设备的细节
使用 | 实现管道:(将command1的输出结果作为command2的输入)
Command1 operation | command2
使用 > 重定向输出:(把输出从stdout重定向到 > 后面的文件,比如将echo重定向到文本文件中)
Cat(concatenate)命令显示 文件在使用标准输出时的内容,可以使用通配符:cat textname
如果没有指定文件名(或者如果指定 - 作为文件名)的话,cat 命令将从 stdin 获取输入:
cat [-] > textname
cat可以将多个文件链接在一起显示,tac则是将文件从最后一行开始反序显示
od(octal dump)文件转储,可以显示一些控制字符,比如tab键显示成为\t或者ht(根据参数的不同而不同)
wc (Word Count)命令将显示文件中所含的行、单词、字节的数量
head输出文件中的前n行,tail输出文件的后n行
expand将tab转换成为空格,-t参数表明一个tab代表的空格数目,效果就是产生和使用tab时候一样的格式(需要知道tab键到底是为了干什么)
unexpand恰好相反,另外-a参数表示所有的空格都要转换
tr就单纯了很多,仅仅是将一个集合中的字符转换为另一个集合中对应的字符
pr 命令用于格式化文件以执行输出。默认的头部(header)包含文件名和文件创建日期和时间,以及一个页号和两行空白页脚。
nl 命令可以对行进行编号,这在输出文件时非常方便。
fmt命令格式化文本以使其能够适合边距(可以依照参数指示文件的顺序同时显示多个文件,但是文件不并行)
sort 将按照系统的 locale(LC_COLLATE)的排序序列来对输入进行排序。sort 命令还可以合并已经排序的文件,并检查某个文件是否已经排序
uniq 命令通常操作已排序的文件,并从文件(不管是否排序)中删除连续的相同行。uniq 命令还可以忽略某些字段。
cut 命令从文本文件中提取字段。默认的字段分隔符是制表符。(从效果上看就是提取每一列)
paste 命令可以并行粘帖来自两个或多个文件的行,其方式类似于 pr 命令使用其 -m 选项合并文件。
join命令根据匹配的字段连接文件。这些文件应当根据 join 字段排序。
Sed流编辑器