用户名: 密码: 忘记密码? 注册

学习笔记(wc、cmp、diff)

作者:  时间: 2010-12-23
一、wc(单词、字符、行计数)
wc命令计数一或多个文档里德字符、单词、行数
1、字符计数中包含了换行符(\n)
2、默认输出三个选项(clw),可单独指定
c  字符
l  行
w  单词

#wc test1
  7  23 108 test1
//7行  23个单词  108个字符(包括"\n")

#wc -l test1
7 test1

#wc -w test1
23 test1

#wc -c test1
108 test1

二、cmp(字节比较命令)
# cat test1
asd fsf1 asdf
asd fsf2 asdf
asd fsf3 asdf
asd fsf asdf 123
asd1 fsf asdf12
asd2 fsf asdf12
asd fsf asdf 123

# cat test2
asd fsf1 asdf
asd fsf2 asdf321
asd fsf3 asdf
asd fsf asdf 123
asd1 fsf asdf122
asd2 fsf asdf122
asd fsf asdf 123

#cmp test1 test2
test1 test2 differ: byte 28, line 2
#cmp -l test1 test2
28  12  63          //28是指第28个字符 12是键盘字符的八进制在这里是换行符,63是3
29 141  62
30 163  61
.
.
.
106  62 163
107  63 144
108  12 146
注意这个玩意比较难懂;
建议和“键盘字符16进制码表,字符八进制 十进制 十六进制 对照表”对照看下会好理解点

#cmp -s test1 test2
参数“-s”是抑制列表选项,它不会把结果显示输出
一般用在脚本当中,结果可通过测试退出状态来判断:
退出状态为0   则两文件一样
退出状态为1   则至少有一个字节有差别

# cmp -s test1 test2
# echo $?
1
===================================================================
三、diff(比较行命令)
格式:diff options  files or directories
常用于处理文件,参数为两个文件、一个文件和一个目录、两个目录;
当指定一个文件和目录时,它会在指定的目录下查找具有相同名字的文件来进行比对;
如果是两个目录,则使用每个目录下名字相匹配的所有文件。
#diff test2 test1
2c2
< asd fsf2 asdf321
---
> asd fsf2 asdf
5,6c5,6
< asd1 fsf asdf122
< asd2 fsf asdf122
---
> asd1 fsf asdf12
> test
7a8,9
> asdfasdfasdfas

> asd2 fsf asdf12
===========================
#diff test1 test2
2c2
< asd fsf2 asdf
---
> asd fsf2 asdf321
5,6c5,6
< asd1 fsf asdf12
< test
---
> asd1 fsf asdf122
> asd2 fsf asdf122
8,9d7
< asdfasdfasdfas
==============================
说明:格式为diff file1 file2
结果显示:
range1 action range2
<text from file1
---
>test from file2
上面例子中:
更改(c)说明了为使file1和file2保持相同应采取的动作。
注意,更改包括删除和替换
附件(a)说明了为使file1和file2保持相同而需要向file1添加的行,附件只发生在file1结尾;也只有file1中的行比file2短时才发生
删除(d)说明了为使file1和file2保持相同而需要在file1中删除的行,删除只有当file1比file2长时才发生