我们有一个长度为 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