LinuxSir.cn,穿越时空的Linuxsir!

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

如何替换文件中的内容?

[复制链接]
发表于 2006-4-11 14:47:11 | 显示全部楼层 |阅读模式
有两个文件

文件一:
192.168.0.1 00:00:00:00:00:00
192.168.0.2 00:00:00:00:00:00
192.168.0.3 00:00:00:00:00:00
192.168.0.4 00:00:00:00:00:00
192.168.0.5 00:00:00:00:00:00
文件二:
192.168.0.1 00:E0:01:02:03:04
192.168.0.3 00:E0:01:02:22:22

要求最后生成:
192.168.0.1 00:E0:01:02:03:04
192.168.0.2 00:00:00:00:00:00
192.168.0.3 00:E0:01:02:22:22
192.168.0.4 00:00:00:00:00:00
192.168.0.5 00:00:00:00:00:00

要做ARP绑定用的,呵呵。
发表于 2006-4-11 16:05:31 | 显示全部楼层
try this:

cat file1 file2 | sort  -r | sort +0 -1 -u
回复 支持 反对

使用道具 举报

发表于 2006-4-11 19:09:41 | 显示全部楼层
新版的 sort 不支持 +0 -1 这类参数了,你试试?

$ sort -k 2 -r file1 file2 | uniq -f 1|sort
192.168.0.1 00:E0:01:02:03:04
192.168.0.3 00:E0:01:02:22:22
192.168.0.5 00:00:00:00:00:00
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-11 19:13:21 | 显示全部楼层
谢谢你的方法,我试过了,好用

希望能跟大家学到更多的方法

有SED的高手吗?用SED可以解决吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-11 19:16:47 | 显示全部楼层
Post by pointer
try this:

cat file1 file2 | sort  -r | sort +0 -1 -u


谢谢你的回答,我发现我问的问题有一大半是你回答的,再次表示感谢,我是初学者,以后请多关照。

我照你的方法试了,但只输出了几个正确的IP,还有一个不正确的。并不能达到要求的那种效果。
二楼的方法我试过。可以正确的显示出来。
回复 支持 反对

使用道具 举报

发表于 2006-4-11 19:47:32 | 显示全部楼层
$ sort -r file1 file2 | rev | uniq -f 1 | rev | sort
192.168.0.1 00:E0:01:02:03:04
192.168.0.2 00:00:00:00:00:00
192.168.0.3 00:E0:01:02:22:22
192.168.0.4 00:00:00:00:00:00
192.168.0.5 00:00:00:00:00:00

我也想试试 sed,不过不会用。。活活。。

改了一下相应的几个IP,测试一下通用性,似乎没问题。
192.168.0.1 00:00:00:00:00:00
192.168.0.215 00:00:00:00:00:00
192.168.0.22 00:E0:01:02:03:04
192.168.0.43 00:00:00:00:00:00
192.168.0.74 00:E0:01:02:22:22
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-12 02:16:54 | 显示全部楼层
192.168.0.215 00:00:00:00:00:00
192.168.0.22 00:E0:01:02:03:04
192.168.0.22 00:00:00:00:00:00
192.168.0.43 00:00:00:00:00:00
我输出的这样的信息,有合法MAC的那行,显示了两行。
回复 支持 反对

使用道具 举报

发表于 2006-4-12 02:37:16 | 显示全部楼层
把2个文件贴出来看看?

file1:
192.168.0.11 00:00:00:00:00:00
192.168.0.22 00:00:00:00:00:00
192.168.0.33 00:00:00:00:00:00
192.168.0.222 00:00:00:00:00:00
192.168.0.111 00:00:00:00:00:00

file2
192.168.0.22 00:E0:01:02:03:04
192.168.0.222 00:E0:01:02:22:22

$ sort -r file1 file2 | rev | uniq -f 1 | rev | sort
192.168.0.11 00:00:00:00:00:00
192.168.0.111 00:00:00:00:00:00
192.168.0.22 00:E0:01:02:03:04
192.168.0.222 00:E0:01:02:22:22
192.168.0.33 00:00:00:00:00:00
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-12 15:25:58 | 显示全部楼层
192.168.0.1     00:0A:EB:9A:94:AA
192.168.0.10    00:0A:EB:6F:F4:71
192.168.0.100 00:00:00:00:00:00
192.168.0.101   00:0A:EB:4B:FB:2E
192.168.0.102 00:00:00:00:00:00
192.168.0.103 00:00:00:00:00:00
192.168.0.104 00:00:00:00:00:00
192.168.0.105   00:0A:EB:4B:97:B2
192.168.0.106   00:0A:EB:4B:B4:C0
192.168.0.2     00:0A:EB:9A:95:9E
192.168.0.20    00:0A:EB:9B:5B:87
192.168.0.200   00:0A:EB:9A:15:1F
192.168.0.201   00:02:2A:C2:B4:B1
192.168.0.202   00:0A:EB:9A:94:AD
192.168.0.203   00:0A:EB:F8:03:04
192.168.0.204   00:0A:EB:6F:F5:7D

这样的文件,怎么能按第一个字段排序呀
回复 支持 反对

使用道具 举报

发表于 2006-4-12 18:58:17 | 显示全部楼层
sort -t. -n -k4 file3
file3 里边包括你贴出的内容。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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