学习笔记(wc、cmp、diff)
时间:2010-12-23 来源:kuaifeidao
一、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长时才发生
#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长时才发生
相关阅读 更多 +