Unix&Linux大学教程:16 过滤器:简介和基本操作

来源:互联网 发布:tushare 保存到mysql 编辑:程序博客网 时间:2024/06/05 22:58

 

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不删除任何列。

 

原创粉丝点击