LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: houshuang

如何替换文件中的内容?

[复制链接]
发表于 2006-4-12 23:35:37 | 显示全部楼层
ip1为文件1,ip2为文件2, 单单用sed来做,比较难,用awk比较好

  1. join -a 1 ip1 ip2 | sed -e 's/[[:space:]].*[[:space:]]/ /'
复制代码
回复 支持 反对

使用道具 举报

发表于 2006-4-13 01:29:07 | 显示全部楼层
join 命令,,,学会了。谢谢:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-13 20:45:02 | 显示全部楼层
Post by johnny_jiang
ip1为文件1,ip2为文件2, 单单用sed来做,比较难,用awk比较好

  1. join -a 1 ip1 ip2 | sed -e 's/[[:space:]].*[[:space:]]/ /'
复制代码


不好意思,我用上面的命令,只是简单的输出了IP1文件中的内容,是我操作有误吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-13 20:50:02 | 显示全部楼层
ip1文件:
192.168.0.0
192.168.0.1    00:C0:26:AB:09:60
192.168.0.2   00:E0:4C:FE:97:06
192.168.0.201   00:04:61:5F:0F:3E
192.168.0.231
192.168.0.13   00:02:3F:03:43:63
192.168.0.254   00:0A:EB1:CD:C2
192.168.0.255

ip2文件:
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.6     00:00:00:00:00:00
192.168.0.7     00:00:00:00:00:00
192.168.0.8     00:00:00:00:00:00
192.168.0.9     00:00:00:00:00:00
192.168.0.10    00:00:00:00:00:00
192.168.0.11    00:00:00:00:00:00
192.168.0.12    00:00:00:00:00:00
192.168.0.13    00:00:00:00:00:00
192.168.0.14    00:00:00:00:00:00
192.168.0.15    00:00:00:00:00:00
.......
.......
192.168.0.254 00:00:00:00:00:00

文件就是这样。输出的结果希望是:
192.168.0.1 00:C0:26:AB:09:60
192.168.0.2 00:E0:4C:FE:97:06
192.168.0.3 00:00:00:00:00:00
.....
.....
192.168.0.254 00:0A:EB1:CD:C2
谢谢大家
回复 支持 反对

使用道具 举报

发表于 2006-4-13 20:59:44 | 显示全部楼层
怎么乱改格式。。。

相信以上那么多回复,你都明白道理的话,你自己也应该可以做出来了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-13 21:11:28 | 显示全部楼层
反应好快,我改好了,会发上来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-13 21:20:59 | 显示全部楼层
cat ip1 ip2 | sort -r | sort +0 -1 -u |sort -t. -n -k4

可以正确无误的输出我想要的信息。我再试试其它方法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-4-13 21:22:47 | 显示全部楼层
sort -r ip1 ip2 | rev | uniq -f 1 | rev | sort -t. -n -k4
会输出下面的情况。
192.168.0.1 00:00:00:00:00:00
192.168.0.1 00:0A:EB:9A:94:AA
192.168.0.2 00:00:00:00:00:00
192.168.0.2 00:0A:EB:9A:95:9E
192.168.0.3 00:00:00:00:00:00
192.168.0.4 00:00:00:00:00:00
192.168.0.4 00:0A:EB:9A:95:81
192.168.0.5 00:00:00:00:00:00
回复 支持 反对

使用道具 举报

发表于 2006-4-13 22:10:45 | 显示全部楼层
Post by 终极幻想
怎么乱改格式。。。

相信以上那么多回复,你都明白道理的话,你自己也应该可以做出来了。


是啊,应该把什么格式告诉我们,而不是断章取义,这样很难帮助你的,自己试试吧,多看看man帮助,相信自己,灵活运用以上的几个命令,肯定能得到你要的效果
回复 支持 反对

使用道具 举报

发表于 2006-4-17 19:12:24 | 显示全部楼层
Post by 终极幻想
新版的 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


能解释一下 sort +0 -1 -u 中的 +0 -1 具体什么意思吗?
man sort 里没找到相关说明
回复 支持 反对

使用道具 举报

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

本版积分规则

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