Bashの変数割り当て行に正規表現を使用したい
例えば
oldip="14\.130\.31\.172"
oldip_a="14.130.31.172" << How to use regex to del all '\'? and assign to oldip_a
どんなアイデアがありますか?
答え1
を削除するには、\
bashパラメーター置換を使用します。
//
交換することを意味するみんな...(単一は/
最初の文字のみを変更することを意味します。)すべての文字を変更する
//\\
ことを意味します\
(バックスラッシュ)文字は
/}
何も変更しないことを意味します(/
と末尾の間は何も変更しません)。}
ip="14\.130\.31\.172"
echo "${ip//\\/}"
出力
14.130.31.172
あるいは、\.
これらのIPアドレスが多いファイルで複数の操作を実行する必要がある場合は、変更された各値を配列エントリに割り当てることができます。
ip=($(printf '
172.31.130.14
14\.130\.31\.172
33\.135\.220\.0
' | sed 's/\\//g'))
for ((i=0;i<${#ip[@]};i++));do
echo "${ip[i]}"
done
出力
172.31.130.14
14.130.31.172
33.135.220.0
? ! ..私は2番目のデータ項目が最初のデータ項目の反対であることを確認しました。 (おそらくないかもしれませんが、気になります)..