Попробуйте это:
Иметь следующий код в файле
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
Я не знаю, имеет ли 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
для подавления сообщения об ошибке.