Случай изменения энной буквы в строке

Я не полагаю, что возможно повторно протестировать секторы, которые диск уже отметил как плохо и повторно отобразил. Это было бы, "передают его обратно для гарантии" территория. (Например, теоретически у поставщика могут быть инструменты, которые могут проверить и сбросить такой диск).

8
17.11.2014, 01:20
3 ответа

В Bash вы можете сделать:

$ str="abcdefgh"
$ foo=${str:2}  # from the 3rd letter to the end
echo ${str:0:2}${foo^} # take the first three letters from str and capitalize the first letter in foo.
abCdefgh

в Perl:

$ perl -ple 's/(?<=..)(.)/uc($1)/e; ' <<<$str
abCdefgh

или

$ perl -ple 's/(..)(.)/$1.uc($2)/e; ' <<<$str
abCdefgh
5
27.01.2020, 20:11

Другая perl:

$ str="abcdefgh"
$ perl -pe 'substr($_,2,1) ^= " "' <<<"$str"
abCdefgh
  • Общий вид - это подложка($_,n,1), где n - это позиция буквы, которую вы хотите перевернуть регистр (индекс, основанный на 0).

  • Когда вы xor aSCII символ с пробелом, вы инвертируете его регистр.

1
27.01.2020, 20:11

с GNU SED (возможно, другие)

sed 's/./\U&/3' <<< "$str"

с awk

awk -vFS= -vOFS= '{$3=toupper($3)}1' <<< "$str"
7
27.01.2020, 20:11

Теги

Похожие вопросы