diff options
| author | Philip Wittamore <philip@wittamore.com> | 2025-05-18 09:43:01 +0200 | 
|---|---|---|
| committer | Philip Wittamore <philip@wittamore.com> | 2025-05-18 09:43:01 +0200 | 
| commit | 0bead8c47e7c3c2d76b54f29f7cbb278de2c623c (patch) | |
| tree | 54dad0ff644686d3ea3e3fe931cf7864459ec987 /STRINGS.md | |
| parent | 939b9ce5d42ec47e119a8df3eaa1f8da9710509d (diff) | |
| download | bashlib-0bead8c47e7c3c2d76b54f29f7cbb278de2c623c.tar.gz bashlib-0bead8c47e7c3c2d76b54f29f7cbb278de2c623c.tar.bz2 bashlib-0bead8c47e7c3c2d76b54f29f7cbb278de2c623c.zip | |
update
Diffstat (limited to 'STRINGS.md')
| -rw-r--r-- | STRINGS.md | 30 | 
1 files changed, 30 insertions, 0 deletions
| diff --git a/STRINGS.md b/STRINGS.md new file mode 100644 index 0000000..464f887 --- /dev/null +++ b/STRINGS.md @@ -0,0 +1,30 @@ +# Bash string manipulation cheatsheet  + +[https://gist.github.com/magnetikonline/90d6fe30fc247ef110a1](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}` | + | 
