1 diff命令的用法
diff命令常用来比较文件的内容
diff file1 file2
以后面的文件file2作为标准 比较file1相对于file2来说有什么不同
< 表示第一个文件中的内容
> 表示第二个文件中的内容
a表示添加–add
c表示更改–change
d表示删除–delete
< haha #表示第一个文件中的haha
> hello #表示第二个文件中的hello
diff file2 file1
#这种情况与上述所讲刚好相反,这里是以file1为比较的基准,其余不再做赘述。
[root@localhost diff-path]# cat file1
123
[root@localhost diff-path]# cat file2
123
hello
[root@localhost diff-path]# diff file1 file2
1a2 #这里表示file1的第一行需要添加file2的第二行内容
> hello
[root@localhost diff-path]# diff file2 file1
2d1 #这里表示file2的第二行要删除hello,然后内容就会与file1内容相同
< hello
diff比较目录
[root@localhost diff-path]# diff -r /etc/ /tmp/
Only in /etc/: abrt #表示abrt这个文件只在/etc/目录下有,/tmp/目录下没有这个文件
Only in /etc/: adjtime
Only in /etc/: akonadi
Only in /etc/: aliases
Only in /etc/: aliases.db
Only in /etc/: alsa
Only in /etc/: alternatives
Only in /etc/: amanda
Only in /tmp/: anaconda.log
注意:比较的结果是目录中文件的不同,不是文件内容的不同
2 patch用法
[root@localhost diff-path]# ls
file1 file2
[root@localhost diff-path]#
[root@localhost diff-path]# cat file1
123
[root@localhost diff-path]# cat file2
123
hello
[root@localhost diff-path]# diff -u file2 file1
--- file2 2020-03-03 03:58:52.585718656 +0800
+++ file1 2020-03-03 06:08:21.197341501 +0800
@@ -1,2 +1 @@
123
-hello
[root@localhost diff-path]# ls
file1 file2
[root@localhost diff-path]# diff -u file2 file1 > file2.path #生成补丁
[root@localhost diff-path]# ls
file1 file2 file2.path
[root@localhost diff-path]# cat file1
123
[root@localhost diff-path]# cat file2
123
hello
[root@localhost diff-path]# cat file2.path
--- file2 2020-03-03 03:58:52.585718656 +0800
+++ file1 2020-03-03 06:08:21.197341501 +0800
@@ -1,2 +1 @@
123
-hello
[root@localhost diff-path]# patch file2 file2.path #使用patch命令来打补丁
patching file file2
[root@localhost diff-path]# cat file2
123
注意:用上述这种方法打补丁 文件会直接被修改成指定文件内容 原文件内容会被覆盖
如果想要保留原有文件的内容则可以使用
patch -b file3 file3.path #-b表示保留原文件内容
cat file3.orig #原文件内容
[root@localhost diff-path]# cat file1
123
[root@localhost diff-path]# cat file3
123
haha
[root@localhost diff-path]# diff -u file1 file3 > file1.path
[root@localhost diff-path]# ls
file1 file1.path file2 file2.path file3
[root@localhost diff-path]# patch -b file1 file1.path
patching file file1
[root@localhost diff-path]# ls
file1 file1.orig file1.path file2 file2.path file3 #这里多出了一个file1.orig文件
[root@localhost diff-path]# cat file1
123
haha
[root@localhost diff-path]# cat file3
123
haha
[root@localhost diff-path]# cat file1.orig #这个文件里面保留了file1文件的原来内容
123
[root@localhost diff-path]#
3 cut命令
cut命令的作用是用来截取文件内容
1) 参数及说明
参数 | 说明 |
---|---|
-c | 指定截取字符的位置 |
-d | 指定分隔符 |
-f | 指定要截取的列 |
2 )cut命令的使用
cut -d : -f 1 passwd #以:为分隔符 截取passwd文件第一列的内容
cut -d : -f 1,3 passwd #以:为分隔符 截取passwd文件第一列和第三列的内容
cut -d : -f 3- passwd #以:为分隔符 截取passwd文件第三列及后面所有的内容
cut -c 1-3 passwd #截取passwd文件第一个字符到第三个字符的内容
cut -c 1,3 passwd #截取passwd文件第一个字符和第三个字符的内容