From 0aa797f758ad108911c21586a9a4e5a69c80c4a4 Mon Sep 17 00:00:00 2001 From: Philip Wittamore Date: Sat, 17 May 2025 09:18:26 +0200 Subject: update --- string_manipulation.html | 104 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 string_manipulation.html (limited to 'string_manipulation.html') diff --git a/string_manipulation.html b/string_manipulation.html new file mode 100644 index 0000000..ca7b3ed --- /dev/null +++ b/string_manipulation.html @@ -0,0 +1,104 @@ +# Bash string manipulation cheatsheet +# https://gist.github.com/magnetikonline/90d6fe30fc247ef110a1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Assignment
Assign value to variable if variable is not already set, value is returned.

Combine with a : no-op to discard/ignore return value.
${variable="value"}
: ${variable="value"}
Removal
Delete shortest match of needle from front of haystack.${haystack#needle}
Delete longest match of needle from front of haystack.${haystack##needle}
Delete shortest match of needle from back of haystack.${haystack%needle}
Delete longest match of needle from back of haystack.${haystack%%needle}
Replacement
Replace first match of needle with replacement from haystack.${haystack/needle/replacement}
Replace all matches of needle with replacement from haystack.${haystack//needle/replacement}
If needle matches front of haystack replace with replacement.${haystack/#needle/replacement}
If needle matches back of haystack replace with replacement.${haystack/%needle/replacement}
Substitution
If variable not set, return value, else variable.${variable-value}
If variable not set or empty, return value, else variable.${variable:-value}
If variable set, return value, else null string.${variable+value}
If variable set and not empty, return value, else null string.${variable:+value}
Extraction
Extract length characters from variable starting at position.${variable:position:length}
Return string length of variable.${#variable}
Escaping
Single quotes inside a single quoted string.echo 'Don'\''t break my escape!'
Indirection
Return value of variable name held in indirect, else value.indirect="apple"
apple="fruit"
${!indirect-value}
+ +## Reference + +- https://tldp.org/LDP/abs/html/string-manipulation.html +- https://tldp.org/LDP/abs/html/parameter-substitution.html +- https://tldp.org/LDP/abs/html/ivr.html +- Special characters: + - `*`: https://www.tldp.org/LDP/abs/html/special-chars.html#ASTERISKREF + - `?`: https://www.tldp.org/LDP/abs/html/special-chars.html#WILDCARDQU +- https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 -- cgit v1.2.3