diff options
author | Philip Wittamore <philip@wittamore.com> | 2025-05-17 09:25:17 +0200 |
---|---|---|
committer | Philip Wittamore <philip@wittamore.com> | 2025-05-17 09:25:17 +0200 |
commit | 35d37a79c1d4807b6b30f3bddae867ef16947f7a (patch) | |
tree | d340e5613d68acacb59caf2cf44797a09db0b890 /README.md | |
parent | 07a2076c271a3d00b1e0bfdc213b239747f65a22 (diff) | |
download | bashlib-35d37a79c1d4807b6b30f3bddae867ef16947f7a.tar.gz bashlib-35d37a79c1d4807b6b30f3bddae867ef16947f7a.tar.bz2 bashlib-35d37a79c1d4807b6b30f3bddae867ef16947f7a.zip |
update
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -4,3 +4,33 @@ pb_fg 0-254 set foreground colour pb_bg 0-254 set background colour pb_nc remove coulours + +## Bash string manipulation cheatsheet +### https://gist.github.com/magnetikonline/90d6fe30fc247ef110a1 + +| Assignment | | +| --- | --- | +| Assign `value` to `variable` if `variable` is not already set, `value` is returned. <br> <br>Combine with a `:` no-op to discard/ignore return `value`. | `${variable="value"}` <br>`: ${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"` <br>`apple="fruit"` <br>`${!indirect-value}` | + |