Ich mag den Fall der n-ten Buchstaben einer Zeichenfolge ändern in BASH
(oder andere * nix - Tool, zum Beispiel sed
, awk
, tr
usw.).
Ich weiß, dass Sie den Fall einer ganzen Zeichenfolge ändern können, indem Sie:
${str,,} # to lowercase
${str^^} # to uppercase
Ist es möglich, den Fall des 3. Buchstabens von "Test" in Großbuchstaben zu ändern?
$ export str="Test"
$ echo ${str^^:3}
TeSt
~
inperl
Lösung?$ARGV[0]=~
statt<<<$str
. Vielen Dank.bash
kann mitfoo=${str:2}
und gekürzt werden${foo^}
, wodurch nur das erste Zeichen in der Zeichenfolge großgeschrieben wird.Mit GNU
sed
(möglicherweise andere)Mit
awk
quelle
Ein anderer
perl
:Die allgemeine Form ist ,
substr($_,n,1)
won
ist die Position des Buchstaben Sie den Fall invertieren möchten (0-basierender Index).Wenn Sie ein ASCII-Zeichen mit Leerzeichen xorieren, kehren Sie dessen Groß- und Kleinschreibung um.
quelle