16 过滤器:简介和基本操作
16.1 命令和选项变体
短选项:"-" 重要
长选项:"--" 记住:--help
16.2 过滤器
cat new old extra | grep Harley | sort | less
16.3 是否应该创建自己的过滤器
16.4 问题解决过程
(1)分解问题
(2)选择工具
(3)与他人讨论
(4)选择选项
16.5 可能最简单的过滤器:cat
快速地创建小文件:
cat > data
在已有文件中追加少数几行内容:
cat >> data
显示一个短文件:
cat < data 注:当显示长文件时,cat只是让用查看最后一部分
快速显示文件的末尾:
tail file
通过重定向标准输入和输出复制文件:
cat < data > newdata
16.6 增强过滤器的功能
cat语法:
cat [file...]
16.7 最有用的过滤器列表
P341
16.8 组合文件:cat
相关过滤器:rev,split,tac
最有用的选项:
-n(number),每行前面加上行号
-b(blank),和-n一起使用,告诉cat不要对空白行编号
-s(squeeze,挤压),将多个连续空白行替换为一个空白行
16.9 划分文件:split
相关过滤器:cat
语法:
split [-d] [a num] [-l lines] [file [prefix]]
num: 创建文件名是用作文件名后缀的祖父或数字数量
lines: 每个新文件所包含行的最大数量
file: 输入文件名称
prefix: 创建文件时使用的名称
例:
split -l 5000 data 文件名默认为:xaa,xab,xac
注:不要把5000写成5,000
指定自己的名称用作所生成文件名的前缀:
split -d -l 5000 data harley
使用数字做文件前缀:
split -d data
使用3位数字后缀:
split -d -a 3 data
使用3位字母后缀:
split -a 3 data
使用-d选项时,可以创建10*10个文件,没有-d,可以创建626(26*26)个文件。
16.10 组合文件时反转文本行的顺序:tac
相关过滤器:cat,rev
语法:
tac [file...]
与cat区别:
tac在将文本写入到标准输出素质前将文本行的顺序反转(tac名字本身就是cat的缩写).
将文件log中各行的顺序反转,写入新文件reverse-log中:
tac log > reverse-log
不经常使用tac,但是当需要它时,它就珍贵无比!
16.11 反转字符的顺序:rev
相关过滤器:cat,tac
功能:将各行中字符的顺序反转
语法:rev [file...]
希望将每行中的每行中字符的顺序反转,同时将文件中行的顺序反转:
rev data | tac
16.12 从数据开头或结尾选择数据行:head,tail
语法:
head [-n lines]
tail [-n lines]
line: 希望选取的数据行的数量
例:
cat data1 data2 | sort | head -n 20
cat data1 data2 | sort | tail-n 20
cat data1 data2 | sort | head -n 20 | less
cat data1 data2 | sort | tail > most-recent
注: head(tail) -n 15 file 现在可省略n为:head(tail) -15 file
16.13 删除数据列:colrm
相关过滤器:cut ,paste
语法: colrm [startco] [endcol]]
例:
colrm 1 3 < students
colrm 1 3 < students | less
colrm 1 3 < students > grades
如果只指定了起始列,那么colrm将移除从开始到这一行末尾的所有列:
colrm 3 < students
如果既没有指定起始列也没有指定结束列,那么colrm不删除任何列。