我正在尝试使用bash中的字符串替换将大写字母更改为小写字母,但是我遇到了严重的替换错误。
> a=HEY
> echo $a
HEY
> echo ${a,,}
-bash: ${a,,}: bad substitution
# desired output is hey
Run Code Online (Sandbox Code Playgroud)
我已经看到了与此类似的问题,但是在大多数情况下,这归因于使用早期版本的bash。我正在使用GNU bash 4,但仍然遇到相同的问题。
> bash --version
GNU bash, version 4.3.33(1)-release (x86_64-apple-darwin14.1.0)
Run Code Online (Sandbox Code Playgroud)
这可能是Mac的东西吗?任何帮助,将不胜感激。
我正在对用户名列表进行排序。当字母为小写时,排序命令按预期工作。
小写的预期和实际输出:
n
n_123
na
na_123
Run Code Online (Sandbox Code Playgroud)
当字符为大写并后跟下划线时,事情会变得很奇怪。
大写的预期输出:
N
N_123
NA
NA_123
Run Code Online (Sandbox Code Playgroud)
使用sort大写的实际输出:
N
NA
NA_123
N_123
Run Code Online (Sandbox Code Playgroud)
我以为我可以解决这个问题
env LC_COLLATE=C sort $file
Run Code Online (Sandbox Code Playgroud)
但没有骰子。
使用env LC_COLLATE=C sort 的实际输出:
N
NA
NA_123
N_123
Run Code Online (Sandbox Code Playgroud)
我在 Mac OS X 10.12.3 上运行 GNU bash,版本 4.4.12(1)-release (x86_64-apple-darwin16.3.0)
任何帮助将非常感激。