функция/сценарий, это для аргумента в формате (альфы и цифры) afa5hgt3tt
, errerew9ax66w
, символы печати позади цифр много раз как значение цифры, например.
hgthgthgthgthgttttttt
axaxaxaxaxaxaxaxaxaxaxwwwwwww...
Мой сценарий:
#!/bin/bash
func () {
repeats=$(echo $1 | sed -e 's/\([A-Za-z]*\)\([0-9]*\)\([A-Za-z]*\)\([0-9]*\)\([A-Za-z]*\)/\2/g')
for (( i = 0; i < $repeats; i++ )); do
echo $1 | sed -e 's/\([A-Za-z]*\)\([0-9]*\)\([A-Za-z]*\)\([0-9]*\)\([A-Za-z]*\)/\3/g' | tr -d "\n"
done
echo -e "\n"
}
func afa5hgt3tt
func errerew9ax66w
Моей функции не удается распечатать последние знаки позади цифры. это - ttttt и wwww.
Используя perl
(Спасибо @terdon)
perl -pe 's/(.)(\d+)+/$1 x $2/eg'
Или как функция
func () {
perl -pe 's/(.)(\d+)+/$1 x $2/eg' <<< "$1"
}
<час> Пример
% perl -pe 's/(.)(\d+)+/$1 x $2/eg' <<< "afa5hgt66tt"
afaaaaahgtttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
% perl -pe 's/(.)(\d+)+/$1 x $2/eg' <<< "errerew9ax66w"
errerewwwwwwwwwaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxw
% perl -pe 's/(.)(\d+)+/$1 x $2/eg' <<< "afa5hgt3tt"
afaaaaahgttttt