过滤器--4 (2)_第1页
过滤器--4 (2)_第2页
过滤器--4 (2)_第3页
过滤器--4 (2)_第4页
过滤器--4 (2)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、过滤器 1过滤器 文本过滤 就是获取文本输入流,在文本上执行某些转换或什么都不做,然后将它发送到输出流的过程 2Cat-获取输入并输出语法:cat -bns file简单输入输出:cat (ctrl+D)重定向创建文件:cat data cat data 复制文件:cat newdata显示文件: cat file43Split划分文件split OPTION INPUT PREFIX 将一个档案分割成数个。从 INPUT 分割输出成固定大小的档案,其档名依序为 PREFIXaa, PREFIXab.;PREFIX 默认值为 x。若没有 INPUT 档或为 -,则从标准输入读进资料。-d 使用

2、数字而不是字母作为后缀名 -a X 指定后缀名的长度,默认为2位 -l num 分割后文件行数4C程序生成6w行数据文件5tac Tac是cat的倒写,意思也和它是相反的。cat是从第一行显示到最后一行,而tac是从最后一行显示到第一行 用法与cat类似6rev rev 是把每行的字符反转 rootlocalhost $ cat filejj d skkloprootlocalhost $ rev files d jjkkpol7head命令 :head -n lines默认 选项不指定任何选项的时候,比如执行head file,则显示file文件的全部内容。-n 选项显示指定文件的前n行,n

3、为一个整数。8tail命令:tail -n lines 默认 选项不指定任何选项的时候,比如执行tail file,则显示file文件的全部内容。 -n 选项显示指定文件的后n行,n为一个整数。9删除数据列:colrm语法:colrm 开始列数编号colrm指令从标准输入设备读取,转而输出到标准输出设备。如果不加任何参数,则该指令不会过滤任何一行。 10书后习题11文件比较和抽取12比较文件-cmp语法:cmp file1 file2特点:逐字节比较,可以比较图片、音乐等文档13Comm-比较有序文本文件语法:comm -123 file1 file2逐行地比较两个排好序文件的差异,并将其结果

4、显示出来,如果没有指定任何参数,则会把结果分成3列显示:第1列仅是在第1个文件中出现过的行,第2列是仅在第2个文件中出现过的行,第3列则是在第1与第2个文件里都出现过的行。 选项1、2或3抑制相应的列显示。例如comm - 12就只显示在两个文件中都存在的行;comm - 23只显示在第一个文件中出现而未在第二个文件中出现的行;comm - 123则什么也不显示。 14rootlocalhost unix# cat frickalisonbarbarabenchunknoahrootlocalhost unix# cat frackalisonbarbaracandychucknoahsuer

5、ootlocalhost unix# comm frick frack alison barbaraben candy chuckchunk noah sue15只能比较排序的文件-否则无意义rootlocalhost unix# cat frick1barbarabenchunknoahalisonrootlocalhost unix# comm frick1 frack alison barbaraben candy chuckchunk noahalison sue16只能比较排序的文件-否则无意义rootlocalhost unix# cat a1abdcrootlocalhost u

6、nix# cat b1abcdrootlocalhost unix# comm a1 b1 a b c dcrootlocalhost unix# comm b1 a1 a bc d c17diff显示将第一个文件修改为第二个文件所需要遵循的指示18rootlocalhost unix# cat bgacrootlocalhost unix# cat aagcrootlocalhost unix# diff a b1d0 arootlocalhost unix# diff b a1d0 g号是第2个文件中增加或删除的行 19Diff选项-i忽略大小写区别-w忽略空白符-b忽略空白符数量区别20

7、-c改变输出格式-上下文输出格式 rootlocalhost unix# diff -c a b* a 2010-12-17 11:20:00.000000000 +0800- b 2010-12-16 16:24:51.000000000 +0800* 1,4 *- d g! b c- 1,3 - g! a crootlocalhost unix# cat adgarootlocalhost unix# diff -c a b* a 2010-12-17 11:20:49.000000000 +0800- b 2010-12-16 16:24:51.000000000 +0800* 1,3

8、*- d g a- 1,3 - g a+ c指第1个文件一共有4行指第2个文件一共有3行 比较的文件的后者比前着多一行 比较的文件的后者比前着少一行! 比较的文件两者有差别的行 21-u改变输出格式-统一输出格式 rootlocalhost unix# diff -u a b- a 2010-12-17 11:20:49.000000000 +0800+ b 2010-12-16 16:24:51.000000000 +0800 -1,3 +1,3 -d g a+c -1,3是指第1个文件一共有3行,+1,3 是指第2个文件一共有3行 统一格式的输出更加紧凑,所以更易于理解,更易于修改 22-

9、y改变输出格式-并排格式输出 rootlocalhost unix# diff -y a bd crootlocalhost unix# diff -y a bg ga ad | c这种并排格式的对比一目了然,可以快速找到不同的地方 23sdiffrootlocalhost unix# sdiff a bg ga ad | crootlocalhost unix# sdiff -l a bg (a (d | crootlocalhost unix# sdiff -s a bd | c24假如你想查看两个文件是否不同又不想显示差异之处的话,可以加上q选项:rootlocalhost diff#

10、diff hello.c hello_diff.c -qFiles hello.c and hello_diff.c differ 25注意点换行符rootlocalhost unix# cat habrootlocalhost unix# cat h1abrootlocalhost unix# diff h h12c2 b No newline at end of filerootlocalhost unix# cat h1abrootlocalhost unix# diff h h1Windows文件系统中的换行符是 rn Apple的文件系统中的换行符是 r Unix的文件系统中的换行符

11、是 n dos2unixmac2unixunix2dos 26Cut-抽取指定数据列语法:cut c list fileList是要抽取的列的列表Who | cut c 1-8语法:cut f list -d deli -s fileList是要抽取的字段的列表S抑制没有定界符deli的行输出27Paste-组合数据列语法: paste -d char file-d 指定不同于空格或tab键的域分隔符。paste -d: pas2 pas1 P.Jones:ID897S.Round:ID666L.Clip:ID982 28nl创建行号语法:nl -v start -I increment -b

12、 a -n ln|rn|rz fileStart是起始号,-i是增量,-b a强制对空行编号,-n数字格式选项,ln左对齐(无前导0) ,rn右对齐(无前导0) ,rz右对齐(有前导0)29Wc-统计行、单词、字符数量语法:wc -clLw fileC统计字符,l统计行,w统计单词,L输入中最大行长度统计单个文件:Wc file统计多个文件:wc file1 file2例:统计文件数量 ls /etc | wc -l包括换行符无换行符,不计行数P381例30patchpatch options originalfile patchfile如果patchfile为空则从标准输入读取patchfi

13、le内容;如果originalfile也为空,则从patchfile(肯定来自标准输入)中读取需要打补丁的文件名。因此,如果需要修改的是目录,一般都必须在patchfile中记录目录下的各个文件名。绝大多数情况下,patch都用以下这种简单的方式使用:patch -pnum patchfilepatch -R /tmp/ -r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。 -N表示如果某个文件仅在一个目录中出现,则假定其在另一个目录中为空文件。确保补丁文件将正确地处理已经创建或删除文件的情况。 33第二步 cd /tmp

14、; patch -p1 或patch -p0 /tmp/path.diff 3435*diff -Nur linux-2.4.15/Make patch-2.4.16- linux-2.4.15/Makefile Thu Nov 22 17:22:58 2001+ linux/Makefile Sat Nov 24 16:21:53 2001 -1,7 +1,7 VERSION = 2 PATCHLEVEL = 4-SUBLEVEL = 15-EXTRAVERSION =-greased-turkey36*patch首先尝试当前目录(或者-d参数指定的目录)下的linux-2.4.15/Makefile文件是否存在,如果不存在则试图对linux/Makefile文件操作,仅当两者都不存在时(或者设置了POSIXLY_CORRECT环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论