У меня есть эта задача, где я должен извлечь имена пользователей и хешированные пароли из / etc / shadow, но у меня возникла проблема при замене потока командой sed.
Я пробовал эту команду:
sed '/s/*/NoPassword/; s/!/LockedPassword/' /etc/shadow | awk -F: '{ print $1" "$2 }' > passwords.txt
Работает нормально, когда нужно заменить "!" с LockedPasswords, но у некоторых пользователей есть "!!" в поле, а не "!", поэтому я пробовал другие команды.
Они не дают никакого результата, поля пароля, содержащие один или несколько вопросительных знаков, остаются прежними
sed '/s/*/NoPassword/; s/!+/LockedPassword/' /etc/shadow | awk -F: '{ print $1" "$2 }' > passwords.txt
sed '/s/*/NoPassword/; s/!{1,2}/LockedPassword/' /etc/shadow | awk -F: '{ print $1" "$2 }' > passwords.txt
В чем проблема? Я только начинающий для Linux и регулярных выражений.