LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1294|回复: 6

如何用shell(bash)把不同目录中相同文件分别合并?

[复制链接]
发表于 2003-6-13 17:00:23 | 显示全部楼层 |阅读模式
问题是这样的:
我常常在linux下做笔记,并且定期复制到备份目录下.因此,在备份时经常会出现同名文件,如果直接cp的话,旧的笔记内容就玩完了.
用shell能否做到把备份时新的内容添加到同名文件后面?
我的笔记目录:
$ ls notes/
acdsee5.txt              ide2scsi.txt                san_term.txt
autofs.txt               iptables.txt                shell_scripts

我的备份目录:
ls /backup/
acdsee5.txt              ide2scsi.txt                san_term.txt
shell_scripts
发表于 2003-6-13 17:05:59 | 显示全部楼层
这里有个关于用cat合并文件的贴子,你可以参考;)
http://www.linuxsir.cn/bbs/showt ... 7&highlight=cat
 楼主| 发表于 2003-6-13 17:10:08 | 显示全部楼层
最初由 javalee 发表
这里有个关于用cat合并文件的贴子,你可以参考;)
http://www.linuxsir.cn/bbs/showt ... 7&highlight=cat

可能有些内容重复,
如果只想把内容不相同的加入合并的文件,该如何做?
发表于 2003-6-13 17:56:43 | 显示全部楼层
合并很容易,但是如何把重复的内容删除只保留一个就有些难度啦!!我想想吧~~
发表于 2003-6-13 18:03:39 | 显示全部楼层
8.6.14 提取源文件修改部分合并到更新包

下面的操作将根据文件位置,提取源文件的修改部分并创建统一的diff文件file.patch0或file.patch1:

     $ diff -u file.old file.new1 > file.patch0
     $ diff -u old/file new1/file > file.patch1

diff文件(也称补丁文件)通常用于发送程序更新。收到的补丁文件可使用下面的方法更新另一个文件:

     $ patch -p0 file < file.patch0
     $ patch -p1 file < file.patch1

如果有3个版本的源代码,使用diff3来合并效率更高:

     $ diff3 -m file.mine file.old file.yours > file
发表于 2003-6-13 18:15:16 | 显示全部楼层
绝!可以用diff找出相同/差异,在过滤一下!
 楼主| 发表于 2003-6-13 20:12:35 | 显示全部楼层

另人耳目一新.多谢了!

最初由 LYOO 发表
8.6.14 提取源文件修改部分合并到更新包

下面的操作将根据文件位置,提取源文件的修改部分并创建统一的diff文件file.patch0或file.patch1:

     $ diff -u file.old file.new1 > file.patch0
     $ diff -u old/file new1/file > file.patch1

diff文件(也称补丁文件)通常用于发送程序更新。收到的补丁文件可使用下面的方法更新另一个文件:

     $ patch -p0 file < file.patch0
     $ patch -p1 file < file.patch1

如果有3个版本的源代码,使用diff3来合并效率更高:

     $ diff3 -m file.mine file.old file.yours > file
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表