我想从字符串变量中去除所有数字字符,例如:
VARIABLE=qwe123rty567
Run Code Online (Sandbox Code Playgroud)
到:
echo $VARIABLE
> qwerty
Run Code Online (Sandbox Code Playgroud)
我搜索了很多帖子,但他们要么使用 sed 输出到文件/文件名,要么输出到 echo。由于空白,我无法使用它:
VARIABLE=$VARIABLE | sed 's/[0-9]*//g'
Run Code Online (Sandbox Code Playgroud)
cuo*_*glm 12
与bash:
$ printf '%s\n' "${VARIABLE//[[:digit:]]/}"
qwerty
Run Code Online (Sandbox Code Playgroud)
[:digit:]可以包含 0 到 9 以外的其他字符,具体取决于您的语言环境。如果您只想删除 0 到 9,请改用Clocale。
对于多样性,这里的方法使用
tr:
VARIABLE=$(printf '%s' "$VARIABLE" | tr -d '0123456789')
Run Code Online (Sandbox Code Playgroud)
sed:
VARIABLE=$(printf '%s' "$VARIABLE" | sed 's/[0-9]//g')
Run Code Online (Sandbox Code Playgroud)
Bash 扩展,迄今为止最简洁的:
VARIABLE=${VARIABLE//[0-9]/}
Run Code Online (Sandbox Code Playgroud)
最后再次进行 Bash 扩展,这次使用的是[[:digit:]]字符类。
VARIABLE=${VARIABLE//[[:digit:]]/}
Run Code Online (Sandbox Code Playgroud)
请注意(正如其他人指出的那样)[[:digit:]], , 应该涵盖在您的语言环境中定义为数字的任何内容。
| 归档时间: |
|
| 查看次数: |
46316 次 |
| 最近记录: |