История изменений
Исправление legolegs, (текущая версия) :
Скрипт действительно кошмарный. Вот прямо со второй строки странности, а третья вообще шедевр.
Если твой keytool работает так-же как и мой (а пример выхлопа ты не предоставил), то вот это сделает тебе список
#!/bin/bash
function keytoollist
{
# скармливаем пустой пароль
/usr/bin/keytool -v -list -keystore "$1" < /dev/null
# другой вариант
# /usr/bin/keytool -v -list -keystore "$1" <<<$'\n'
}
echo
for FILENAME in $(find /ssl/ -name "*.jks"); do
for OWNER in $(
keytoollist "${FILENAME}" | awk -vFS='[:=, ]+' \
'
$1=="Owner" &&
$2=="CN" &&
!($3 in uniqueowners) {
uniqueowners[$3];print $3
}
'
); do
echo "${FILENAME}-${OWNER}"
done
done
echo
вывод
/ssl/файлключа1.jks-Myname1
/ssl/файлключа1.jks-Myname2
/ssl/файлключа2.jks-Myname1
/ssl/файлключа2.jks-Myname2
/ssl/файлключа2.jks-Myname3
Исходная версия legolegs, :
Скрипт действительно кошмарный. Вот прямо со второй строки странности, а третья вообще шедевр.
Если твой keytool работает так-же как и мой (а пример выхлопа ты не предоставил), то вот это сделает тебе список
#!/bin/bash
function keytoollist
{
# скармливаем пустой пароль
/usr/bin/keytool -v -list -keystore "$1" < /dev/null
# другой вариант
# /usr/bin/keytool -v -list -keystore "$1" <<<$'\n'
}
echo
for FILENAME in $(find /ssl/ -name "*.jks"); do
for OWNER in $(
keytoollist "${FILENAME}" | awk -vFS='[:=, ]+' \
'
$1=="Owner" &&
$2=="CN" &&
!($3 in uniqueowners) {
uniqueowners[$3];print $3
}
'
); do
echo "${FILENAME}-${OWNER}"
done
done
echo