Isso parece fazer o que você deseja:
mystring="This is a test"
inject="____"
randomnumber=4 # determined to be random by fair die roll
echo ${mystring::$randomnumber}${inject}${mystring:$randomnumber}
Temos uma string com um comprimento de 20 caracteres.
Temos um número aleatório, ex .: 6
Temos uma variável, ex .: $ var="%"
Como podemos inserir uma variável no sexto lugar na string?
Exemplo:
ENTRADA: aaaaaaaaaaaaaaaaaaaa
OUTPUT: aaaaa% aaaaaaaaaaaaaaa
echo INPUT | MAGIC > OUTPUT
Não com perl
, mas sed
, se alguém estiver interessado.
INPUT="aaaaaaaaaaaaaaaaaaaa"
random_number="6"
var="%"
echo ${INPUT} | sed -e "s/./${var}/${random_number}"
Desde que você marcou isso com perl
:
echo aaaaaaaaaaaaaaaaaaaa | var=% perl -lpe 's/^.{5}\K/$ENV{var}/e'
Outra maneira com perl
:
echo aaaaaaaaaaaaaaaaaaaa | var=% perl -lpe 'substr $_, 5, 0, $ENV{var}'
A sua variável $ var a perl que você já tem acesso, ou é uma variável shell?
Para este caso em particular, eu provavelmente preferiria usar substr
.
$ echo "123456789" | perl -lpe 'substr $_, 5, 0, "insert"'
12345insert6789
Tags perl