если ваш файл является настоящим файлом csv (простой -csv ), как показано ниже,вы можете использовать следующую команду awk
:
Вход:
jeff@email.com
larry@email.com
jprice@email.com,jeff@email.com,jeff@stacko.com
Команда:
awk -F, '{ COMMA="";i=0; while (++i<=NF) {
$1=$i; printf (!seen[$1]++)?COMMA$i:""; COMMA=","}; print ""
}' infile.csv
Выход:
jeff@email.com
larry@email.com
jprice@email.com,jeff@stacko.com
Если нет, и ввод похож на ваш вопрос, вы можете вместо этого использовать ниже:
awk 'NR==1; NR>1{id=$1"\t"; COMMA=$1="";split($0, ar, /,| /);
for(i in ar){if(ar[i]!=""){printf(!seen[ar[i]]++)?id""COMMA""ar[i]:""; COMMA=",";id=""}
} print ""}' infile
Выход:
id emails
1 jeff@email.com
2 larry@email.com
3 jprice@email.com,jeff@stacko.com
Во-первых, полезное примечание (в любом случае для меня )при отладке проблем с аутентификацией SSH:
Запустите сервер в режиме отладки на Synology:
/bin/sshd -d -p 1234` as root;
Войдите в свой клиент, используя
ssh -p1234 -v <username>@<synology>
Это позволит вам получить легкий доступ к полезной отладке.
sshd
конфигурации Отредактируйте /etc/ssh/sshd_config
и обновите конфигурацию AuthorizedKeysFile
для поддержки значения по умолчанию плюс альтернативное расположение файла:
AuthorizedKeysFile /var/ssh-homes/%u/dot-ssh/authorized_keys.ssh/authorized_keys
Перезапустите SSH-сервер, что проще всего сделать в этом случае с помощью графического интерфейса DSM:
Шаги:снимите флажок «Включить SSH» --> примените --> повторно -отметьте --> примените
authorized_keys
файл для каждого применимого пользователя Я создал приведенный ниже скрипт как /root/prepare-dot-ssh-authorized-keys
для этой цели следующим образом:
vi /root/prepare-dot-ssh-authorized-keys
или аналогичного chmod u+x /root/prepare-dot-ssh-authorized-keys
/root/prepare-dot-ssh-authorized-keys <username>
Обратите внимание, что на форумах Synology было полезное обсуждение. Аутентификация без -корневого ключа SSH, работающая с DSM 6.2.2 -24922 Обновление 4 и ssh-сервер отказался от ключа для всех пользователей но root , который сэкономил мне время и поставил меня на правильный путь.
/root/prepare-dot-ssh-authorized-keys
#!/bin/bash -e
# https://community.synology.com/enu/forum/1/post/129890
if test -z "$1" ; then
echo "usage: $0 <username>"
echo ""
echo "Ensure config in /etc/ssh/sshd_config includes:"
echo "AuthorizedKeysFile /var/ssh-homes/%u/dot-ssh/authorized_keys.ssh/authorized_keys"
exit 1
fi
_DIR="/var/ssh-homes/$1/dot-ssh"
_AK="${_DIR}/authorized_keys"
if test -d "${_DIR}" ; then
echo "$0: ${_DIR} already exists"
exit 2
fi
if test -r "${_AK}" ; then
echo "$0: ${_AK} already exists"
exit 3
fi
mkdir -p "${_DIR}"
chmod og-rwx `dirname "${_DIR}"`
touch "${_AK}"
chown "${1}.users" -R `dirname "${_DIR}"`
echo "$0: created ${_AK}"