長さが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