讨论其他BSD项目及其衍生品,如:FreeBSD,DragonFlyBSD,PC-BSD,DesktopBSD,FreeNAS,NAS4Free,m0n0wall,pfSense,pacBSD,OpenDarwin...
-
chenjun
- 铁 Fe
- 帖子: 56
- 注册时间: 2010-08-31 17:38
帖子
由 chenjun » 2011-03-10 10:08
请教一个问题,如何截取如下文件
代码: 全选
192.168.0.166.54800 192.168.0.167.80
192.168.0.166.49477 192.168.0.167.21
让他输出成如下文件
代码: 全选
192.168.0.166 192.168.0.167 80
192.168.0.166 192.168.0.167 21
大伙帮忙看看,能实现不
-
chenjun
- 铁 Fe
- 帖子: 56
- 注册时间: 2010-08-31 17:38
帖子
由 chenjun » 2011-03-10 12:07
问题解决了,有两种方法可以实现预期的效果
方法一:
代码: 全选
sed 's/\.[0-9]\+//4;s/\./ /7'
方法二:
代码: 全选
awk -v FS="[.| ]" '{sub(FS $5,"");sub(FS $NF," "$NF)}1'
我原本是想参考别人给的例子,自己来截取文件如
代码: 全选
Nov 20 13:34:09.4438 192.168.0.166.54800 192.168.0.167.80:
成为
代码: 全选
Nov 20 13:34:09.4438 192.168.0.166 192.168.0.167 80
但发现功力不够,还是通过其他高手的帮忙得以解决
代码: 全选
sed 's/\.[0-9]*//5; s/\.\([0-9]*\):$/ \1/'
自己刚接触shell命令这块,还不是太熟,上面具体如何实现的我还不能解释的太清楚,但发现awk,sed,cut这些命令真的很神奇,自己要好好学习一下
-
leo
- 帖子: 2465
- 注册时间: 2010-01-21 3:27
帖子
由 leo » 2011-03-10 12:42
羡慕一下,目前还没有玩shell的功力。
-
wkx9dragon
- 锌 Zn
- 帖子: 493
- 注册时间: 2010-02-02 18:00
帖子
由 wkx9dragon » 2011-03-10 19:57
对于这个例子,这条命令就可以了。
sed -e "s/\.[0-9]\{5\}//;s/\./ /7"
在线用户
正浏览此版面之用户: 没有注册用户 和 1 访客