Команда для проверки существования пользователей в /etc/passwd в другом файле

Попробуйте это:

Иметь следующий код в файле

INPUT=$1
CONTENT=`echo "$INPUT" | cut -c1-14`
COUNT=`echo "${INPUT#"$CONTENT"}"`
for i in $(seq 1 "$COUNT")
do
        echo "$CONTENT-$i"
done

Запустите сценарий с вводом во время выполнения, как показано ниже:

sh file.sh TestTest12312313
TestTest123123-1
TestTest123123-2
TestTest123123-3
TestTest123123-4
TestTest123123-5
TestTest123123-6
TestTest123123-7
TestTest123123-8
TestTest123123-9
TestTest123123-10
TestTest123123-11
TestTest123123-12
TestTest123123-13
2
05.06.2021, 02:39
1 ответ

Я не знаю, имеет ли aix diffту же опцию, что и GNU diff, но в моем linuxэто при выполнении сksh(оболочкой по умолчанию вaix)работает:

diff -I "^#" --new-line-format="" --unchanged-line-format="" <(awk -F: '$3 < 200  {print $1}' /etc/passwd) /etc/ftpusers

Если команда diffотличается, попробуйте использовать цикл:

for u in $(awk -F":" '$3 < 200 {print $1}' /etc/passwd); do
        count=$(grep -scx "$u" /etc/ftpusers)
        [ "$count" -gt 0 ] || echo "$u"
done

Я протестировал его ksh, и он работает.

Я также проверил опции grep, доступные в дистрибутиве grepс aix, и он поддерживает как -cдля подсчета, так и -sдля подавления сообщения об ошибке.

1
28.07.2021, 11:27

Теги

Похожие вопросы