LINUX.ORG.RU

История изменений

Исправление 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