Chinaunix

标题: 请教一个ip格式的问题 [打印本页]

作者: frankzh    时间: 2006-10-24 16:54
标题: 请教一个ip格式的问题
比如文件a为ip列表

  1. 060.167.128.000/16
  2. 060.170.000.000/17
  3. 060.070.128.000/17
  4. 160.171.064.000/18
  5. 060.171.128.23/18
复制代码


怎么用shell格式为

  1. 60.167.128.0/16
  2. 60.170.0.0/17
  3. 60.70.128.0/17
  4. 160.171.64.0/18
  5. 60.171.128.23/18
复制代码


也就是把连续有三个零 的都换成一个零,其他开头为零的都去掉
作者: awk就是awp加ak    时间: 2006-10-24 16:56
awk -F'[./]' '{ print $(NF-1)-0 }'
作者: vantien    时间: 2006-10-24 16:59

  1. awk -F'[./]' '{print $1/1"."$2/1"."$3/1"."$4/1"/"$5}'  YourFile
复制代码

嘿嘿, 楼上的比较简单

[ 本帖最后由 vantien 于 2006-10-24 17:00 编辑 ]
作者: qqq112233g    时间: 2006-10-24 17:02
sed 's/\.00*/\.0/g;s/\.0\([0-9][0-9]*\)/\.\1/g;s/^0*//g;' file
作者: awk就是awp加ak    时间: 2006-10-24 17:03
原帖由 vantien 于 2006-10-24 16:59 发表

  1. awk -F'[./]' '{print $1/1"."$2/1"."$3/1"."$4/1"/"$5}'  YourFile
复制代码

嘿嘿, 楼上的比较简单

那整个复杂滴:
  1. awk -F'.' 'BEGIN { OFS=FS; }{ split($NF, arr, "/"); $NF = (arr[1]-0)"/"arr[2]; print; }' urfile
复制代码

作者: awk就是awp加ak    时间: 2006-10-24 17:06
to frankzh :
还不如将
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1
17楼的 $4 修改成 ($4-0)
作者: awk就是awp加ak    时间: 2006-10-24 17:07
19楼,偶又错了!
作者: frankzh    时间: 2006-10-24 17:09
awk就是awp加ak  你的执行后 每行只出现一个数  是不是你漏了那里   呵呵 ;) 我说的是二楼你的shell 你回复太快啊

vantien  你的执行后 是可以的

谢谢 二位了  我的开始学shell了

[ 本帖最后由 frankzh 于 2006-10-24 17:13 编辑 ]
作者: awk就是awp加ak    时间: 2006-10-24 17:13
2楼的只是个意思,呵呵!
作者: 寂寞烈火    时间: 2006-10-24 17:42
sed 's/0\([1-9][0-9]\)/\1/g;s/000/0/g'
作者: lovesaka    时间: 2006-10-24 20:43
看来还是我的简单

  1. sed 's/\b00\?//g;'
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2