将变量插入字符串中的随机位置?

将变量插入字符串中的随机位置?

我们有一个长度为 20 个字符的字符串。

我们有一个随机数,例如:6

我们有一个变量,例如: $var="%"

我们如何将变量插入到字符串的第六位?

例子:

输入:啊啊啊啊啊啊啊啊

输出:aaaaa%aaaaaaaaaaaaaa

回显输入|魔法> 输出

答案1

不是与perl,但是sed,如果有人感兴趣的话。

INPUT="aaaaaaaaaaaaaaaaaaaa"
random_number="6"
var="%"

echo ${INPUT} | sed -e "s/./${var}/${random_number}"

答案2

因为您用以下标签标记了此内容perl

echo aaaaaaaaaaaaaaaaaaaa | var=% perl -lpe 's/^.{5}\K/$ENV{var}/e'

另一种方式perl

echo aaaaaaaaaaaaaaaaaaaa | var=% perl -lpe 'substr $_, 5, 0, $ENV{var}'

答案3

这似乎做你想做的事:

mystring="This is a test"
inject="____"
randomnumber=4 # determined to be random by fair die roll

echo ${mystring::$randomnumber}${inject}${mystring:$randomnumber}

答案4

您的 $var 是您已经可以访问的 perl 变量,还是 shell 变量?

对于这种特殊情况,我可能更喜欢使用substr.

$ echo "123456789" | perl -lpe 'substr $_, 5, 0, "insert"'
12345insert6789

相关内容