bash脚本中的模糊字符串

时间:2016-10-14 15:02:32

标签: bash sed tr

我正在尝试执行以下操作:

obscure ( ) {
    local txt="$1"
    echo "$txt" | tr '[:alnum:]' '*'
}

如果我这样做:

obscure 'mysecretstring'

我明白了:

**************

我可以使用什么匹配器tr而不是[:alnum:]来表示任何字符'?

有没有更好的方法来实施obscure?我想到的另一个选择是sed

1 个答案:

答案 0 :(得分:7)

您可以使用纯BASH:

obscure() {
   local txt="$1"
   echo "${txt//?/*}"
}

"${txt//?/*}"会将$txt中的每个字符替换为*

测试它:

obscure 'mysecretstring3123213213'
************************

obscure mysecretstring
**************

obscure '!@#$%^&*()_+=-'
**************

obscure '中文版'
***