Я хочу изменить случай п-й буквы строки в BASH
(или любых других инструментов * NIX, например sed
, awk
, tr
, и т.д.).
Я знаю, что вы можете изменить регистр целой строки, используя:
${str,,} # to lowercase
${str^^} # to uppercase
Можно ли изменить регистр 3-й буквы «Тест» в верхний регистр?
$ export str="Test"
$ echo ${str^^:3}
TeSt
~
вperl
решении?$ARGV[0]=~
вместо<<<$str
. Спасибо.bash
Может быть сокращено сfoo=${str:2}
и${foo^}
, что заглавным только первым символом в строке.С GNU
sed
(возможно, другими)С
awk
источник
Другое
perl
:Общая форма ,
substr($_,n,1)
гдеn
позиция письма вы хотите , чтобы инвертировать случай (0 на основе индекса).Когда вы добавляете символ ASCII с пробелом, вы обращаете его регистр.
источник