Сегодня я буквально столкнулся с этой проблемой на нескольких хостах в своей инфраструктуре.
Решение состоит в том, чтобы сделать то, что говорит ошибка. Установите пакет libselinux-python
. Или вы можете отключить selinux на целевом хосте (s ).
С сайта Ansible:
If you have SELinux enabled on remote nodes, you will also want to install libselinux-python on them before using any copy/file/template related functions in Ansible. You can of course still use the yum module in Ansible to install this package on remote systems that do not have it.
Хорошо, если я правильно понял, вы хотите префикс фиксированной строки ко всем числам, напечатанным shuf
. Если это так, просто добавьте эту строку в начало строки формата printf
:
$ printf "x%10s\n" $(shuf -i 50-100 -n 3 -r)
x 71
x 70
x 92
Измените %10s
на %s
, чтобы получить их вплотную друг к другу без пробелов. Точно так же вместо этого вы можете использовать переменную цикла:
$ for f in 1 2 3; do printf "$f%s\n" $(shuf -i 50-100 -n 2 -r); done
151
197
268
256
364
354
Добавьте >> "$f"
для перенаправления на файлы.
Обратите внимание, что, поскольку здесь фиксированная часть является частью строки формата, любые знаки %
и обратные косые черты будут интерпретироваться как printf
.
Сохраните результат shuf
в массиве bash, затем используйте подстановку в расширении параметра, чтобы добавить перед ним$f
:
mapfile -t shuf < <(shuf -i 50-100 -n 50)
printf '%10s \n' "${shuf[@]/#/"$f"}" >>"$f"
Для zsh используйте расширение параметра ^
:
printf '%10s \n' "$f${(f)^"$(shuf -i 50-100 -n 50)"}" >> "$f"