Самый простой подход, который я вижу, - пометить строки данных как регион, а затем использовать поиск и замену регулярного выражения:
Mx replace-regexp
RET \(.*\),\(.*\),\(.*\),\(.*\)
RET :PROPERTIES:
Cq Cj :Name: \1
Cq Cj :Tel: \2
Cq Cj :Mobile: \3
Cq Cj :Fax: \4
Cq Cj :END:
RET
Если вам нужно было сделать это для многих переменных CSV-файлов с разными заголовками и количеством столбцов, то я, вероятно, подхожу к этому с клавиатурными макросами .
Ответ user310031 послужит хорошей основой для этого. Макрос может сузить буфер до каждой строки, вставить строку заголовка над ней, выполнить csv-transpose
(что, по-видимому, требует CSV mode ), выполнить поиск + замену, добавить в :PROPERTIES:
и :END:
строк, снова расширяем буфер и оставляем точку на строке перед следующей строкой данных. Затем просто отметьте оставшиеся строки данных как регион и введите C-x C-k r .