Case Modify
Text Case Modification In Bash
- I realize that this is beside your point, but…don't shell out to
trlike you did. It's really slow and Bash has built-in facilities for manipulating strings—especially case. Equivalent to your codeinput=$(echo "$value" | tr '[:upper:]' '[:lower:]')would be something like: - input="$*"
- input="${input,,}"
- We are assigning a new value to the
bashvariableinput. The right-hand-side of the=is the new value. If we used${input}, that would just be the value already in variableinputThe magic is in those two commas,,. A,operator after the variable name downcases the first letter of the variable and leaves the rest of the value unchanged. The double-comma,,operator after the variable downcases every character in the value. - You can use
^and==for uppercasing. - You could have done the same in a single line with
input="${*,,}" - I ran the
trversion as written above 1000 times and a "pure" Bash equivalent Thetrversion took 4.1 sec versus "pure" Bash's 0.04 sec (100 X faster).
Children