2017-03-14 78 views
0

我有一個輸出是一個IP地址。我想改變的最後一個號碼永遠是100如何替換最後一個字符後的所有文本

192.168.1.30我想做一個替換最後.後,以取代最後一個數字是100,所以我總是留下:192.168.1.100

如何可以完成這個?

我的輸出是:

echo $(ip route show dev eth0 | grep default | cut -d ' ' -f 3) 

進出口新的bash和發現有關這個問題罷了。

感謝。

+1

這工作? 'echo $(ip route show dev eth0 | grep default%。\ d \ d).100' – Pureferret

回答

1

將輸入和輸出字段分隔符設置爲點。最後一列分配給100

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

或者通過sed:使用backrefrencing

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}' 
+0

我該如何將它實現到我的輸出中:'echo $(ip route show dev eth0 | grep default | cut -d' '-f 3)'謝謝! – irishwill200

+1

做'ip route show dev eth0 | grep default | cut -d''-f 3 | awk'BEGIN {FS = OFS =「。」} {$ NF = 100} 1'' –

+0

完美無缺!謝謝你百萬:) – irishwill200

相關問題