Unix & Linux笔记(8)

第17章 过滤器:比较和抽取

17.1 比较文件

17.2 比较任意两个文件:cmp

cmp file1 file2

17.3 比较有序文本文件:comm

comm [-123] file1 file2

17.4 比较无序文本文件:diff

diff
用来比较文件各个版本之间的差别。
diff [-bBiqswy] [-c|-Clines|-u|-Ulines] file1 file2

diff的目的就是显示将第一个文件修改为第二个文件所需遵循的指示。

17.5 diff使用的选项

-i 忽略大小写 -w whitespace,忽略所有的空白符 -b 忽略空白符在数量上的区别 -B blank lines,忽略所有的空白行 -q quiet,当两个文件不同时忽略所有细节(=cmp) -s same,

17.6 比较文件时的输出格式:diffsdiff

diff [-bBiqswy] [-c|-Clines|-u|-Ulines] file1 file2
-c context,上下文关系,显示两个不同的行及上下文 -u unified output,生成类似于-c的输出,但没有重复行 -y 并排的输出 显示不同数量的上下文,可以使用-C替代-c,-U替代-u,后面跟着希望显示的额外行数量即可。


diff -C5 file1 file2
diff -U3 file1 file2
sdiff = diff –y

sdiff [-bBilsW] [-w columns] file1 file2
-ibB (与diff一样) -W (大写)忽略所有的空白符(但是diff使用-w,历史原因) 减少输出量的几个选项
-l 只显示左边的行 -s 只显示不同的行 -w 改变列的宽度

17.7 差分和补丁

程序各个版本之间的变化

差分(diff):将一个文件转换为另一个文件的一连串指示,当以一个文件创建另一个文件时,称为应用了差分,应用差分的程序是patch
分发程序的变化,这种差分称为补丁(patch)。

17.8 抽取数据列:cut

cut是一个从数据列中抽取指定列并将其他内容抛弃的过滤器(与colrm相反)。
cut抽取数据列时的语法:

cut -c list [file...]

list是要抽取的列表,file是输入文件的名称,大多数情况下建议省略-c之后的空格。

cut -c 14-30,42-49 info

17.9 抽取数据字段:cut;记录、字段和定界符

记录:record
字段:field
定界符:delimiter

cut抽取字段时的语法:

cut -f list [-d delimiter] [-s] [file...]
cut -f 1,3-5 -d ':' /etc/passwd

如果cut遇到不包含任何定界符的行,默认情况下只是简单地写入到标准输出。如果希望抛弃输出,可以使用-s(suppress)选项。

17.10 组合数据列:paste

paste [-d char] [file...]

char是用作分隔的字符,file是输入文件的名称。默认情况下,paste在两列实体之间放一个制表符。在各列之间使用不同的字符,可以使用-d(delimiter)选项,后面跟一个括在单引号中的备选字符。如果指定了不止一个定界符,paste将轮流使用每个定界符。

你可能感兴趣的:(Unix & Linux笔记(8))