Saya ingin mengubah kasus surat-n dari string di BASH
(atau alat * nix lainnya, misalnya sed
, awk
, tr
, dll).
Saya tahu bahwa Anda dapat mengubah seluruh casing menggunakan:
${str,,} # to lowercase
${str^^} # to uppercase
Apakah mungkin mengubah huruf "Tes" ke-3 menjadi huruf besar?
$ export str="Test"
$ echo ${str^^:3}
TeSt
~
diperl
solusi?$ARGV[0]=~
bukan<<<$str
. Terima kasih.bash
dapat dipersingkat denganfoo=${str:2}
dan${foo^}
, yang hanya mengkapitalisasi karakter pertama dalam string.Dengan GNU
sed
(mungkin yang lain)Dengan
awk
sumber
Lainnya
perl
:Bentuk umum adalah di
substr($_,n,1)
manan
posisi huruf yang ingin Anda membalikkan case (indeks berbasis 0).Ketika Anda xor karakter ASCII dengan spasi, Anda membalik kasusnya.
sumber