Я создаю один лайнер, где мой экспорт ldap напрямую преобразуется в csv. Пока все хорошо, но проблема в том, что 1 столбец моего csv должен содержать закодированные в base64 значения. Эти значения выводятся в виде открытого текста из фильтра поиска ldap. Поэтому мне нужно, чтобы они были конвертированы во время создания awk.
То, что у меня есть:
ldapsearch | awk -v OFS=',' '{split($0,a,": ")} /^blobinfo:/{blob=a[2]} /^cn:/{serialnr=a[2]} {^mode=a[2]; print serialnr, mode, blob}'
Это дает мне вывод в формате csv, как и предполагалось, но теперь мне нужно преобразовать BLOB-объекты в кодированный base64 вывод. .
Getline недоступен
демонстрационный ввод:
cn: 1313131313
blobinfo: a string with spaces
mode: d121
cn: 131313asdf1313
blobinfo: an other string with spaces
mode: d122
Выход должен быть как
1313131313,D121,YSBzdHJpbmcgd2l0aCBzcGFjZXM=
где YSBzdHJpbmcgd2l0aCBzcGFjZXM = это закодированная строка с пробелами
но теперь я получаю
1313131313,D121,a string with spaces