Bash-如何检查字符串中的所有字母是否为大写
例如:Bash-如何检查字符串中的所有字母是否为大写,bash,Bash,例如: "abc" -> false "aBc" -> false "aBC" -> false "ABC" -> true 您可以尝试通过正则表达式匹配执行此操作: etoneja@ois ~ $ REGEX='^[A-Z]+$' etoneja@ois ~ $ echo "ABC" | grep -P -q "$REGEX" etoneja@ois
"abc" -> false
"aBc" -> false
"aBC" -> false
"ABC" -> true
您可以尝试通过正则表达式匹配执行此操作:
etoneja@ois ~ $ REGEX='^[A-Z]+$'
etoneja@ois ~ $ echo "ABC" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
0
etoneja@ois ~ $ echo "ABc" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
1
0表示成功,1表示失败
在@Gordon Davisson comment之后编辑。您可以尝试使用正则表达式匹配:
etoneja@ois ~ $ REGEX='^[A-Z]+$'
etoneja@ois ~ $ echo "ABC" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
0
etoneja@ois ~ $ echo "ABc" | grep -P -q "$REGEX"
etoneja@ois ~ $ echo $?
1
0表示成功,1表示失败
在@Gordon Davisson comment之后编辑。在纯
bash
中,使用[
中的正则表达式:
$ [[ abc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ ABC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
All upper case
在纯
bash
中,使用[[
中的正则表达式:
$ [[ abc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBc =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ aBC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
$ [[ ABC =~ ^[[:upper:]]+$ ]] && echo "All upper case"
All upper case
您应该在变量引用(即,
grep-P-q“$REGEX”
)周围加上双引号。没有它们,shell会将该REGEX视为glob模式,并尝试将其放入匹配文件名列表中,这可能会导致非常奇怪的问题。您应该在变量引用(即,grep-P-q“$REGEX”)周围加上双引号
)。如果没有它们,shell会将该正则表达式视为全局模式,并尝试将其放入匹配文件名列表中,这可能会导致非常奇怪的问题。如果字符串仅包含字母,则可以使用A2BC。如果字符串仅包含字母,则可以使用A2BC。您可以尝试使用A2BC