如何在最后一个char后替换所有文本

时间:2017-03-14 12:57:16

标签: bash

我的输出是ip地址。我想将最后一个数字改为100。

16.04.02我想做一个替换,将最后一个192.168.1.30后的最后一个数字替换为.所以我总是留下:100

我怎样才能做到这一点?

我的输出是:

192.168.1.100

我是bash的新手,并没有发现任何与这个问题有关的内容。

感谢。

1 个答案:

答案 0 :(得分:1)

将输入和输出字段分隔符设置为点。将最后一列指定为100.

awk  'BEGIN{FS=OFS="."}{$NF=100}1' inputfile

sed:使用反向归档

sed -r 's/(^.*)\.(.*)/\1.100/g' inputfile

根据OP评论,这可以单独使用awk来完成。无需grepcut

ip route show dev eth0 |awk '/default/{split($3,a,".");gsub(a[4],"100");print $3}'