Попробуйте это:
perl -nle'($time, $host) = /^(\S+)\s(?:\S+\s+){8}\S+="(\S+?)"/; print "$time $host"'
Выход:
2016-05-07T09:07:04.933343+00:00 jamaican.com
\S
означает не -пробел \s
— пробел (?:)
— логическая группа, которая не захвачена {8}
— пропущенные «слова» \S+="(\S+?)"
означает :пропустить до =
и захватить то, что находится между двумя "
кавычками ($time, $host) = /.../
назначает две захваченные группы $time
и $host
Это действительно то, что должно произойти. Однако вы не передаете один и тот же зашифрованный пароль каждый раз, когда:password_hash
может принимать соль в качестве второго параметра. Если он отсутствует, он генерируется случайным образом. (Соль используется для защиты от атак с предварительно -вычисляемым словарем, поэтому хэш-значение для bleh
будет каждый раз другим)
Сравните:
ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha256') }}"
запустить несколько раз, с изменением результата, с
ansible all -i localhost, -m debug -a "msg={{ 'mypassword' | password_hash('sha512', 'mysecretsalt') }}"
где результат остается прежним, потому что вы исправляете соль.