Bash:
Extracting substrings
How to:
Here’s the lowdown on substring extraction in Bash:
# Using ${string:start:length}
text="The quick brown fox"
substring=${text:4:5}
echo $substring # Outputs 'quick'
# Default length is rest of the string
substring=${text:16}
echo $substring # Outputs 'fox'
# Negative start index (from the end of the string)
substring=${text: -3}
echo $substring # Outputs 'fox'Deep Dive
Bash has handled strings since way back. Extracting substrings is an old-school trick, but still super handy. Before fancy tools, we just had parameter expansion – the ${} syntax – and it’s stood the test of time.
Alternatives? Sure. awk, cut, and grep can all slice and dice strings in their own way. But for a quick, no-extra-spawn job, Bash’s built-in method is efficient.
Implementation-wise, Bash grabs substrings without fuss. It doesn’t care what’s inside your string: text, numbers, unicorn emojis – whatever. Just give it the start and end, and it’ll blindly snip that piece out.
See Also
Dive deeper and check out these links:
- Bash’s manual on parameter expansion:
man bashand search for Parameter Expansion awkandgrepdeep dives: Awk Tutorial and Grep Manual- A broader look at string manipulation in Bash: Bash String Manipulation Guide