首页 > IT基础架构 > 网络安全 > Manipulating Strings
String Length
stringZ=abcABC123ABCabc
echo ${#stringZ} # 15
echo `expr length $stringZ` # 15
echo `expr "$stringZ" : '.*'` # 15 |
Length of Matching Substring at Beginning of String
$substring is a regular expression.
$substring is a regular expression.
stringZ=abcABC123ABCabc # |------| echo `expr match "$stringZ" 'abc[A-Z]*.2'` # 8 echo `expr "$stringZ" : 'abc[A-Z]*.2'` # 8 |
Index
Numerical position in $string of first character in $substring that matches.
stringZ=abcABC123ABCabc
echo `expr index "$stringZ" C12` # 6
# C position.
echo `expr index "$stringZ" 1c` # 3
# 'c' (in #3 position) matches before '1'. |
This is the near equivalent of strchr() in C.
Substring Extraction
Extracts substring from $string at $position.
If the string parameter is "*" or "@", then this extracts the positional parameters, [1] starting at position.
Extracts $length characters of substring from $string at $position.
stringZ=abcABC123ABCabc
# 0123456789.....
# 0-based indexing.
echo ${stringZ:0} # abcABC123ABCabc
echo ${stringZ:1} # bcABC123ABCabc
echo ${stringZ:7} # 23ABCabc
echo ${stringZ:7:3} # 23A
# Three characters of substring. |
If the string parameter is "*" or "@", then this extracts a maximum of length positional parameters, starting at position.
echo ${*:2} # Echoes second and following positional parameters.
echo ${@:2} # Same as above.
echo ${*:2:3} # Echoes three positional parameters, starting at second. |
Extracts $length characters from $string starting at $position.
stringZ=abcABC123ABCabc # 123456789...... # 1-based indexing. echo `expr substr $stringZ 1 2` # ab echo `expr substr $stringZ 4 3` # ABC |
Extracts $substring at beginning of $string, where $substring is a regular expression.
Extracts $substring at beginning of $string, where $substring is a regular expression.
stringZ=abcABC123ABCabc echo `expr match "$stringZ" '(.[b-c]*[A-Z]..[0-9])'` # abcABC1 echo `expr "$stringZ" : '(.[b-c]*[A-Z]..[0-9])'` # abcABC1 # Both of the above forms are equivalent. |
Substring Removal
Strips shortest match of $substring from front of $string.
Strips longest match of $substring from front of $string.
stringZ=abcABC123ABCabc
# |----|
# |----------|
echo ${stringZ#a*C} # 123ABCabc
# Strip out shortest match between 'a' and 'C'.
echo ${stringZ##a*C} # abc
# Strip out longest match between 'a' and 'C'. |
Strips shortest match of $substring from back of $string.
Strips longest match of $substring from back of $string.
stringZ=abcABC123ABCabc
# ||
# |------------|
echo ${stringZ%b*c} # abcABC123ABCa
# Strip out shortest match between 'a' and 'C', from back of $stringZ.
echo ${stringZ%%b*c} # a
# Strip out longest match between 'a' and 'C', from back of $stringZ. |
Substring Replacement
Replace first match of $substring with $replacement.
Replace all matches of $substring with $replacement.
stringZ=abcABC123ABCabc
echo ${stringZ/abc/xyz} # xyzABC123ABCabc
# Replaces first match of 'abc' with 'xyz'.
echo ${stringZ//abc/xyz} # xyzABC123ABCxyz
# Replaces all matches of 'abc' with # 'xyz'. |
If $substring matches front end of $string, substitute $replacement for $substring.
If $substring matches back end of $string, substitute $replacement for $substring.
stringZ=abcABC123ABCabc
echo ${stringZ/#abc/XYZ} # XYZABC123ABCabc
# Replaces front-end match of 'abc' with 'xyz'.
echo ${stringZ/%abc/XYZ} # abcABC123ABCXYZ
# Replaces back-end match of 'abc' with 'xyz'. |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8503278/viewspace-890176/ ,如需转载,请注明出处,否则将追究法律责任。