From 65e2eebbcfa34e10824447c05d3ef14f77ba583f Mon Sep 17 00:00:00 2001 From: Philip Wittamore Date: Sun, 18 May 2025 09:52:46 +0200 Subject: update --- STRINGS.html | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 STRINGS.html diff --git a/STRINGS.html b/STRINGS.html new file mode 100644 index 0000000..687456f --- /dev/null +++ b/STRINGS.html @@ -0,0 +1,27 @@ +

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} |

-- cgit v1.2.3