awk
хорошо подходит для таких задач группировки, например:
$ awk -F'"' ' { a[$2]=a[$2] ", \""$4"\"" }
END { for(i in a) printf("symlink(\"%s\"%s);\n", i, a[i]); }' input
Вывод для вашего примера:
symlink("toolbox", "/system/bin/schedtop", "/system/bin/sendevent",
"/system/bin/setconsole", "/system/bin/setenforce",
"/system/bin/setprop", "/system/bin/setsebool");
symlink("mksh", "/system/bin/sh");
(разрывы строк добавлены для лучшей компоновки)
Где -F '"'
указывает awk
интерпретировать символ двойной кавычки как разделитель полей. $ 2
и т. Д. Ссылаются на 2-е поле и т. Д., Для каждой строки в ассоциативный массив a
. Действие END
выполняет итерацию по каждому ключу ассоциативного массива и распечатывает группы.
Можете показать полную конфигурацию? Следующее запускается без ошибок для меня на OpenBSD 6.2. Примечательно, что tls
должен находиться в блоке server
и должен быть указан отдельно для каждой опции. (Да, это мой почтовый сервер и система сборки хоста...)
buildsrv_ip="10.11.12.13"
chroot "/home/httpd"
server "default" {
directory auto index
listen on $buildsrv_ip tls port 9999
tls ciphers "HIGH:!eNULL:!SSLv3:!TLSv1:!DSS:!ECDSA:!RSA:!SHA1:!AES128:!DHE:-
ECDH:ECDHE:+SHA384:+SHA256"
tls certificate "/etc/mail/host.crt"
tls key "/etc/mail/host.key"
}