awk help:用csv电子表格中的不同IP替换IP地址中的第4个八位字节

时间:2013-10-17 15:14:46

标签: replace sed awk ip

我想创建一个简单的awk脚本/单行程序,它将通过一个csv文件并帮助我替换ip地址中的第四个八位字节,第二列中的值。这是初始输入的样子:

  

10.4.0。 0 2
  10.4.50。 0 4
  10.4.15。 0 52
  10.4.0。 0 19

我想要

  

10.4.0。的 2
  50年4月10日。的 4
  10.4.15。的 52
  10.4.0。 19

2 个答案:

答案 0 :(得分:3)

你可以这样做:

 awk -F'[ .]' '{print $1 "." $2 "." $3 "." $5}' file.csv

答案 1 :(得分:1)

你可以简单地做,并且有点模糊不清:

awk '{$4=$5} NF--' FS='[ .]+' OFS=. file.csv

解释

  • $4=$5将第四个八位字节设置为第五个字段,其中字段计数基于点和空格。
  • NF--有两个函数,它会删除第五个字段($5)并调用默认规则({print $0}),因为它不为零。

更新

OP发布的评论请求(将网络掩码附加到IP地址)可以很容易地添加到这个答案中:

awk '{$4=$5"/28"} NF--' FS='[ .]+' OFS=. file.csv

输出:

10.4.0.2/28
10.4.50.4/28
10.4.15.52/28
10.4.0.19/28