英数字以外のすべての文字を下線で置き換えます。

英数字以外のすべての文字を下線で置き換えます。

私はこれを持っています:

second_arg="${second_arg/[^[:alnum:]]/_}"

私がこうすれば:

second_arg="foo::"
second_arg="${second_arg/[^[:alnum:]]/_}"
echo "$second_arg"

それから私は次を得ます:

foo_:

英数字以外のすべてのインスタンスを置き換える方法は?私は次のグローバルスイッチを試しました。

 second_arg="${second_arg/[^[:alnum:]]/_/g}"

しかし、それはうまくいきませんでした。結局、次のようになりました。

foo_:/g

ベストアンサー1

または、 bash の変数拡張機能を引き続き使用するには、次のようにします。二つスラッシュは、各一致を代替アイテムに置き換えます。

second_arg="${second_arg//[^[:alnum:]]/_}"
                         ^------ here

おすすめ記事