С помощью GNU grep
вы можете сократить конвейер до следующего:
pacman -S package-name | grep -Po '^package-name: \K[^[:space:]]+(?= exists in filesystem$)' > conflicting_files.txt
Кроме того, вы также можете изменить [^[:space:]]
на \S
, чтобы соответствовать последовательностибез пробелов -.
Однако у вас не запущен модуль hostname
. На самом деле вы вообще не указали модуль.-a
устанавливает аргумент для модуля , а не самого модуля (, который-m
). Модуль по умолчанию — это модуль команды , а команда (и оболочка, а также аналогичные модули )всегда имеют статус измененных, если они успешно выполняются (, потому что Ansible не знает, как отслеживать, какие изменения могли быть внесены какой-либо произвольной командой ).