Bash unixshell子字符串?
我想提取子字符串,直到最后一个数字结束 例如: 在字符串“abcd123z”中,我希望输出为“abcd123” 在字符串“abcdef123gh01yz”中,我希望输出为“abcdef123gh01” 在字符串“abcd123”中,我希望输出为“abcd123” 如何在unix shell中执行此操作?尝试此sed命令Bash unixshell子字符串?,bash,shell,unix,ksh,Bash,Shell,Unix,Ksh,我想提取子字符串,直到最后一个数字结束 例如: 在字符串“abcd123z”中,我希望输出为“abcd123” 在字符串“abcdef123gh01yz”中,我希望输出为“abcdef123gh01” 在字符串“abcd123”中,我希望输出为“abcd123” 如何在unix shell中执行此操作?尝试此sed命令 sed 's/^\(.*[0-9]\).*$/\1/g' file 例如: $ echo 'abcdef123gh01yz' | sed 's/^\(.*[0-9]\).*$/
sed 's/^\(.*[0-9]\).*$/\1/g' file
例如:
$ echo 'abcdef123gh01yz' | sed 's/^\(.*[0-9]\).*$/\1/g'
abcdef123gh01
试试这个sed命令
sed 's/^\(.*[0-9]\).*$/\1/g' file
例如:
$ echo 'abcdef123gh01yz' | sed 's/^\(.*[0-9]\).*$/\1/g'
abcdef123gh01
可以在BASH regex中执行此操作:
str='abcdef123gh01yz'
[[ "$str" =~ ^(.*[[:digit:]]) ]] && echo "${BASH_REMATCH[1]}"
abcdef123gh01
可以在BASH regex中执行此操作:
str='abcdef123gh01yz'
[[ "$str" =~ ^(.*[[:digit:]]) ]] && echo "${BASH_REMATCH[1]}"
abcdef123gh01
是的,我清楚地提到了
BASH
,因为OP用BASH
标记了问题,他标记了BASH和kshYes,我清楚地提到了BASH
,因为OP用BASH
标记了问题,他标记了BASH和ksh