0
0
Bash Scriptingscripting~5 mins

String suffix removal (${var%pattern}) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What does the syntax ${var%pattern} do in bash scripting?
It removes the shortest matching suffix pattern from the value of the variable var. This means it deletes the smallest part at the end of the string that matches pattern.
Click to reveal answer
intermediate
How does ${var%%pattern} differ from ${var%pattern}?
${var%%pattern} removes the longest matching suffix pattern, while ${var%pattern} removes the shortest matching suffix pattern from the variable's value.
Click to reveal answer
beginner
Example: If file="report.txt.bak", what is the result of ${file%.bak}?
The result is report.txt. It removes the shortest suffix matching .bak from the variable file.
Click to reveal answer
intermediate
Why use string suffix removal instead of external commands like sed or cut?
Because string suffix removal is faster and uses built-in shell features, so it avoids starting extra programs. It is simpler and more efficient for small string changes.
Click to reveal answer
beginner
What happens if the pattern does not match any suffix in ${var%pattern}?
If the pattern does not match the end of the string, the variable's value remains unchanged.
Click to reveal answer
What does ${filename%.txt} do if filename="notes.txt"?
ADoes nothing
BRemoves the prefix '.txt' from filename
CRemoves all '.txt' occurrences in filename
DRemoves the suffix '.txt' from filename
Which syntax removes the longest matching suffix pattern in bash?
A${var%%pattern}
B${var#pattern}
C${var%pattern}
D${var##pattern}
If path="folder/file.tar.gz", what does ${path%.gz} return?
Afolder/file.tar.gz
Bfolder/file.tar.g
Cfolder/file.tar
Dfolder/file.tar.gz.gz
What happens if the pattern does not match the suffix in ${var%pattern}?
AThe variable is emptied
BThe variable value is unchanged
CAn error occurs
DThe entire string is removed
Why is using ${var%pattern} preferred over external tools for suffix removal?
AIt is built-in and faster
BIt requires installing extra software
CIt is slower but more readable
DIt works only on Linux
Explain how to remove a file extension suffix from a filename variable in bash using string suffix removal.
Think about removing the shortest suffix matching the extension.
You got /3 concepts.
    Describe the difference between ${var%pattern} and ${var%%pattern} in bash string manipulation.
    One removes the smallest matching suffix, the other the largest.
    You got /2 concepts.