Unix & Linux笔记(7)

来源:互联网 发布:阿里云学生主机 编辑:程序博客网 时间:2024/05/30 23:54

第16章 过滤器:简介和基本操作

16.1 命令和选项变体


16.2 过滤器

过滤器
就是任何能够从标准输入读取文本数据(每次一行)并向标准输出写入文本(每次一行)的程序。

管道线的第一个和最后一个程序不必是过滤器。


16.3 是否应该创建自己的过滤器


16.4 问题解决的过程

思考,RTFM,询问他人意见


16.5 可能最简单的过滤器:cat

cat
将标准输入的数据复制到标准输出,不以任何方式对数据做任何处理或改变。

a) 与重定向组合,快速创建小文件 cat > data
b) 在已有文件中追加少数几行内容 cat >> data
c) 显示一个短文件 cat < data = cat data
d) 复制文件 cat < data > newdata


16.6 增强过滤器的功能

cat < data = cat data

(省略了<字符)允许指定一个或多个输入文件名。
通过使用cat为其他过滤器服务,至少可以保持其他过滤器的纯洁性。

过滤器定义的讨论:

a)从标准输入读入数据时充当过滤器,从文件中读取数据时不是过滤器。
b)拓展过滤器的定义,无论从标准输入还是从文件中读取数据都是过滤器。


16.7 最有用的过滤器列表

过滤器 参阅 作用 awk perl 编程语言;操作文本 cat split、tac、rev 组合文件;复制标准输出到标准输入 colrm cut、join、paste 删除指定的数据列 comm cmp、diff、sdiff 比较两个有序文件,显示区别 cmp comm、diff、sdiff 比较两个文件 cut colrm、join、paste 从数据列中抽取指定列(字段) diff cmp、comm、sdiff 比较两个文件,显示不同 expand unexpand 将制表符转变为空格 fold fmt、pr 将长行格式化为短行 fmt fold、pr 格式化段落 grep look、strings 选取包含指定模式的行 head tail 从数据的开头选择行 join colrm、cut、paste 基于公用字段,组合数据列 look grep 选择以指定模式开头的行 nl wc 创建行号 paste colrm、cut、join 组合数据列 perl awk 编程语言:操作文本、文件、进程 pr fold、fmt 将文本格式化为叶或列 rev cat、tac 将每行数据中的字符反序排列 sdiff cmp、comm、diff 比较两个文件,显示区别 sed tr 非交互式文本编辑器 sort tsort、uniq 排序数据;检查数据是否有序 split grep 将大文件分割成小文件 strings grep 在二进制文件中搜索字符串 tac cat、rev 组合文件,同时将文本行的顺序 tail head 从数据的末尾选择行 tr sed 改变或删除选定的字符 tsort sort 根据偏序创建全序 unexpand expand 将空格转变成制表符 uniq sort 选择重复/唯一行 wc nl 统计行数、单词数和字符数

16.8 组合文件:cat

cat [-bns] [file...]-n,--number  在每行前面加一个行号-b,--number-nonblank 和-n连用,不对空白行编号-s,--squeeze-blank  压缩空白行

16.9 划分文件:split

split [-d] [-a num] [-l lines] [file [prefix]]

num是创建文件名时用作文件名后缀的字符或数字个数;
lines是每个新文件所包含行的最大数量;
file是输入文件的名称;
prefix是创建文件时使用的名称。
split默认创建1000行的文件。
默认以x开头的名称,后面跟两个字符的后缀。

改变创建的文件名,使用-d(digit)选项,split就在文件名后面使用两个数字后缀。
prefix可以指定所生成文件名的后缀。


16.10 组合文件时反转文本行的顺序:tac

tac [file...]tac log1 log2 log3 | less先分别反序,在进行组合。

16.11 反转字符的顺序:rev

rev file...

16.12 从数据开头或末尾选择数据行:headtail

head [-n lines]tail [-n lines]

16.13 删除数据列:colrm

colrm column removecolumn [start [endcol]]colrm 12 14 < student
0 0
原创粉丝点击