2017-10-27 30 views
0

私は1.1.1.1.1のような文字列を持っています。すべてのドットを_文字に置き換えたいと思います。文字列内のドットをbash内の文字に置き換えます。

私は、次のプログラムを書いた:

#!/bin/bash 

var="1.1.1.1.1" 
new2=${var/./_} 
echo $new2 

をそれだけで文字列の_との最初のドットに置き換えられ、その結果は次のとおりです。 1_1.1.1.1

私は_ですべてのドットを置き換えることができますか?

ありがとうございました。

+0

グローバルに正規表現/ gを使用する – happymacarts

+1

@happymacartsこれは、パラメータ展開でグローバル置換を行う方法ではありません。 – chepner

+2

それは私が何も知らないスレッドにコメントを投稿するために得たものです。少なくとも私はそれに答えようとはしませんでした! – happymacarts

答えて

5

あなたはかなり近くでした。 すべて試合を交換するには、${var//find/replace}を使用します。フォーム${var...}

#!/bin/bash 
var="1.1.1.1.1" 
new2="${var//./_}" 
echo "$new2"  # prints 1_1_1_1_1 

bashの組み込みコマンドはパラメータの置換と呼ばれています。あなたはそれらについてのすべてを見つけることができますhere

関連する問題