문자열의 임의의 위치에 변수를 삽입하시겠습니까?

문자열의 임의의 위치에 변수를 삽입하시겠습니까?

길이가 20자인 문자열이 있습니다.

예를 들어 6과 같은 임의의 숫자가 있습니다.

예를 들어 $var="%"와 같은 변수가 있습니다.

문자열의 6번째 위치에 변수를 어떻게 삽입하나요?

예:

입력: 아아아아아아아아아아아아아

출력: 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 변수입니까, 아니면 쉘 변수입니까?

이 특별한 경우에는 substr.

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

관련 정보