Вот простой скрипт Python 3, который добавляет 10 к каждому числу.
#!/usr/bin/env python3
import fileinput
import re
rx = re.compile(r'(\d+)')
for line in fileinput.input():
parts = rx.split(line.rstrip('\n'))
if len(parts) > 1:
for i in range(1, len(parts), 2):
parts[i] = str(int(parts[i]) + 10)
line = "".join(parts)
print(line)
Предполагается, что каждая строка начинается с числа, отличного от -. Нетрудно измениться, чтобы быть немного более гибким, но на данный момент это, похоже, решило задачу.
Чтобы вызвать это из сценария Bash, просто сохраните его в файле и chmod a+x filename.py
. Итак, если вы сохранили его в ./splitnum.py
, это команда для его запуска, как только вы убедитесь, что у него есть разрешение на выполнение.
Вот лайнер Perl one -:
perl -lne '@s = split(/(\d+)/); for($i=1;$i<=$#s;$i+=2) { $s[$i] += 10 }; print(join("", @s))'
Использование этой функции bash:
function docker--run() {
if [[ -z $1 ]]; then
echo 'docker--run [-v $PWD:/src] IMAGE'
return 1
fi
# useradd for ubuntu (which has adduser as well)
# adduser for alpine, others not tested
docker run -it --rm --entrypoint sh "$@" -c "
[ -x /usr/sbin/useradd ] && useradd -m -u $(id -u) u1 -s /bin/sh || adduser -D -u $(id -u) u1 -s /bin/sh;
exec su - u1"
}
Вы можете запустить его как
docker--run -v /home/$USER:/home/u1 kiesel/debian-ssh-client
Он создаст пользователя u1
с вашим идентификатором пользователя в контейнере докера, а затем переключится на этого пользователя.