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
===========================
#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长时才发生