jak*_*ing 1 bash awk grep gnuwin32
我想从字符串末尾删除数字.
例:
string123
example545
Run Code Online (Sandbox Code Playgroud)
输出:
string
example
Run Code Online (Sandbox Code Playgroud)
没有外部工具,只需参数扩展和扩展通配:
$ shopt -s extglob
$ var=string123
$ echo "${var%%+([[:digit:]])}"
string
$ var=example545
$ echo "${var%%+([[:digit:]])}"
example
Run Code Online (Sandbox Code Playgroud)
的扩展glob模式是"一个或多个的该",所以是"一个或多个数字".+(pattern)+([[:digit:]])
该膨胀装置"删除的最长可能的匹配从的末端.${var%%pattern}patternvar
如果字符串中的其他任何地方都没有其他数字,则可以执行以下操作:
echo string123 | sed 's/[0-9]//g'
string
Run Code Online (Sandbox Code Playgroud)
并且只有字符串的结尾:
echo S1tring123 | sed 's/[0-9]\+$//'
S1tring
Run Code Online (Sandbox Code Playgroud)
where$表示行尾。